Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Upload capriccioso su cambio server

    Ciao a tutti e buon'estate 2008

    cambiando server non mi va più lo script che utilizzavo per caricare le mie foto.

    adesso nella pagina mi vien fuori

    codice:
    Warning: copy(): Unable to access in /home/httpd/vhosts/sito.it/httpdocs/gestionale/pages/gallery.php on line 285
    Errore.. upload non riuscito
    
    Warning: unlink(): Unable to access in /home/httpd/vhosts/sito.it/httpdocs/gestionale/pages/gallery.php on line 299
    nei precedenti passaggi di server mi bastava cambiare il percorso path ma ora ne ho provati diversissimi e nulla raddrizza la situazione.

    la parte dello script incriminato è la seguente... mi date una mano per favore????

    codice:
    if (($foto=="ok") && ($up=="vero")) {
    
        //upload dei file e salvataggio nel db
    
    
    
        $save="ko";
    
    	//$a=$_SERVER['DOCUMENT_ROOT'];
    
    	$path = /home/httpd/vhosts/sito.it/httpdocs/public/foto_salento";
    
    	if (($largeimage != 'none'))	{
    
    			print("Percorso locale: $largeimage -- ");
    
    			print("Nome del file: $largeimage -- ");
    
    			print("Dimensione del file: $largeimage_size -- ");
    
    			print("Tipo di file: $largeimage_type -- 
    ");
    
    			
    
    			print("<HR/> 
    ");
    
    			$Filedest="Salento_" .$id_categoria ."_" .$largeimage_name;
    
    riga 285			if (copy( $largeimage , $path . "/" .$Filedest )){
    
    				print "$largeimage copiato con successo in $path/$Filedest";
    
    				$POS = strrpos($LARGEFILE,"/");
    
    				$FILE1 = "Salento_" .$id_categoria ."_";
                	$FILE2 = substr($LARGEFILE,$POS);
    
    
    				$save="ok";
    
                }else{print "Errore.. upload non riuscito
    ";$save="ko";}
    
    riga 299	unlink($largeimage);
    
    	}else{print "Errore.. nessun file.";$save="ko";}
    
    // fine upload primo file
    ---------------------------
    danielix05

  2. #2
    Scusa, ma perché non utilizzi move_uploaded_file()?

    http://it2.php.net/manual/en/functio...oaded-file.php

    Comunque, sei sicuro di avere i permessi in scrittura sulla directory di upload?

  3. #3

    next step

    ciao e grazie della tua risposta

    ho modificato come segue:
    codice:
    			$Filedest="Salento_" .$id_categoria ."_" .$largeimage_name;
    
    			move_uploaded_file($largeimage,$Filedest);
    			
    			if (move_uploaded_file( $largeimage , "/home/httpd/vhosts/sito.it/httpdocs/public/foto_salento/" .$Filedest )){
    			//if (copy( $largeimage , $path . "/" .$Filedest )){
    
    				print "$largeimage copiato con successo in $path/$Filedest";
    
    				$POS = strrpos($LARGEFILE,"/");
    
    				$FILE1 = "Salento_" .$id_categoria ."_";
                	$FILE2 = substr($LARGEFILE,$POS);
    
    
    				$save="ok";
    
     riga 301           }else{print "Errore.. upload non riuscito
    "; print $path; $save="ko";}
    
    	unlink($largeimage);
    
    	}else{print "Errore.. nessun file.";$save="ko";}
    sia la cartela public sia foto_salento sono settate su 777
    ma mi continua a dare "Errore.. upload non riuscito" quindi il tutto si ferma alla riga 301

    L'errore completo è questo
    codice:
    Errore.. upload non riuscito
    /home/httpd/vhosts/sito.it/httpdocs/public/foto_salento
    Warning: unlink(): Unable to access in /home/httpd/vhosts/sito.it/httpdocs/gestionale/pages/gallery.php on line 303
    anche se credo che la riga unlink dovrebbe essere cancellata rimane il fatto che l'upload della foto non vaaaaaaaaaaaaaaaaaa


    che faccio???
    ---------------------------
    danielix05

  4. #4
    scusa ma perché lo fai due volte?

    move_uploaded_file($largeimage,$Filedest);
    if (move_uploaded_file( $largeimage , "/home/httpd/vhosts/sito.it/httpdocs/public/foto_salento/" .$Filedest ))

  5. #5

    errore mio
    ho sbagliato a togliere le // dei commenti mentre trascrivevo qui

    ma comunque non è questo l'errore perchè nello script mentre lo testavo c'erano i commenti
    quindi il comando viene passato una sola volta
    ---------------------------
    danielix05

  6. #6
    ma $largeimage cos'è?

    Scusa se vado a step, ma senza il codice intero non posso procedere in altro modo

  7. #7
    largeimage è il file temporaneo che arriva dal form

    ecco il codice intero

    Codice PHP:


    if (isset($_POST["del_id"])) {

    $id_categoria=$_POST["del_id"];

    $del_id="vero";

    }else{$del_id="falso";}



    if (isset($_POST["upimg"])) {

    $up="vero";

    $id_categoria=$_POST["upimg"];

    $LARGEFILE=$_FILES["largeimage"]["name"]; // CON FILES
    $val_sottocategoria = $_POST["sottocategoria"];


    }else{$up="falso";}


    if (isset($_POST["categoria"])){

    $id_categoria = $_POST["categoria"];

    }

    ?>

    </head>



    <body>



    <?php


    //eliminazione dell'indirizzo delle foto dal db

    if ($del_id=="vero"){

        
    $sql_foto="SELECT galleria.FOTO, galleria.ID_CONTATORE FROM galleria WHERE galleria.ID_CATEGORIA = " .$id_categoria;

        
    $result_foto mysql_query("$sql_foto")or die (mysql_error());

        
    $righe_foto mysql_num_rows($result_foto);    

        if (
    $righe_foto!=0) {

            
    $counter=0;

            for (
    $counter=0;$counter<$righe_foto;$counter++){

                
    mysql_data_seek($result_foto,$counter);

                
    $riga=mysql_fetch_assoc($result_foto);

                
    $id=$riga["ID_CONTATORE"];

                if (isset(
    $_POST[$id])){

                    
    $sqldel="DELETE FROM galleria WHERE galleria.ID_CONTATORE='$id'";

                    
    mysql_query("$sqldel") or die (mysql_error());

                }        

            }

            

        }

    }



    //-----------------------------------------------





    ?>



    <table width="900" border="0" cellpadding="0" cellspacing="0" align="center">

      

      <tr align="center" valign="bottom"> 

        <td height="40" colspan="5" class="Title">[b]Inserimento di una Nuova Foto - (Foto Galleria)[/b]</td>
      </tr>

      <tr> 

        <td height="23" colspan="5" valign="top"><hr color="#FF9900" size="5"></td>
      </tr>

      <tr> 

        <td width="166" height="53"></td>

        <td width="22"></td>

        <td width="622" align="center" valign="top">

    [b]ATTENZIONE![/b]</p>

          

    [i]Attenersi alle indicazioni riportate nel modulo. L'inserimento di 

            una foto troppo grande potrebbe compromettere l'operazione di upload del 

            file ed il layout della pagina.[/i]</p></td>

        <td width="25"></td>

        <td width="189"></td>
      </tr>

      <tr> 

        <td height="115"></td>

        <td colspan="3" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0">

            <form action="?page=gallery" enctype="multipart/form-data" method="post" name="UploadFile">

              

              <tr> 

                <td width="209" height="40" align="right" valign="middle">



                    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1024000">

                </td>
              </tr>

              <tr> 

                <td height="40" align="right" valign="middle">

    File Immagine [i](jpg, gif)[/i]</p></td>

                <td colspan="2" align="left" valign="middle"> <input  size="35" type="file" name="largeimage"></td>
              </tr>

              <tr> 

                <td height="20" align="right" valign="middle">

    Scegli una sottocategoria</p></td>

                <td colspan="2" align="left" valign="middle">
                                          <?php
                                                    
    //fai una query
                                                    
    $query mysql_query("SELECT * FROM sub_categorie_gallery");
                                                    
                                                    
    //apro il  tag select per il menu a tendina
                                                    
    echo"<select name=\"sottocategoria\">";
                                                    
                                                    
    //metto i risultati della query in un  array e poi faccio un ciclo
                                                    
    while($row mysql_fetch_array($query))
                                                    {
                                                        
    //stampo option con value uguale alla regione e il testo è la regione
                                                        
    echo "<option value=\"".$row['nome']."\">".$row['nome']."</option>";
                                                    }
                                                    
    //finito il ciclo chiudo il tag select
                                                    
    echo"</select>";
                                            
    ?>

                
                </td>
              </tr>
              <tr>
                <td height="20" align="right" valign="middle">Descrizione breve</td>
                <td colspan="2" align="left" valign="middle"><input  size="45" type="text" name="descrizione"></td>
              </tr>

              <tr> 

                <td height="35" align="right" valign="bottom"> <p class="Indented"> 

                    <input type="hidden" name="upimg" value="<? echo $id_categoria;?>">

                    <input type="reset" value="Ripristina">

                    </p></td>

                <td width="160" align="left" valign="bottom"><p class="Indented"> 

                    <input  type="submit" value="Esegui Upload">

                  </p></td>

                <td width="219" align="center" valign="bottom"><font size="-2">[i]* MAX 150 FOTO[/i]</font></td>
              </tr>
            </form>

        </table></td>

        <td></td>
      </tr>

      <tr> 

        <td height="15"></td>

        <td></td>

        <td></td>

        <td></td>

        <td></td>
      </tr>

      <tr align="center" valign="middle"> 

        <td height="55" colspan="5">


    <?php

    $sql_foto
    ="SELECT galleria.FOTO FROM galleria WHERE galleria.ID_CATEGORIA = " .$id_categoria;

    $result_foto mysql_query("$sql_foto")or die (mysql_error());

    $righe_foto mysql_num_rows($result_foto);    



    if (
    $sql_foto<150){

        
    $foto="ok";

    }else{

        
    $foto="ko";

    }

    if ((
    $foto=="ok") && ($up=="vero")) {

        
    //upload dei file e salvataggio nel db



        
    $save="ko";

        
    $a=$_SERVER['DOCUMENT_ROOT'];

        
    $path "/home/httpd/vhosts/sito.it/httpdocs/public/foto_salento";

        if ((
    $largeimage != 'none'))    {

                print(
    "Percorso locale: $largeimage -- ");

                print(
    "Nome del file: $largeimage -- ");

                print(
    "Dimensione del file: $largeimage_size -- ");

                print(
    "Tipo di file: $largeimage_type -- 
    "
    );

                

                print(
    "<HR/> 
    "
    );

                
    $Filedest="Salento_" .$id_categoria ."_" .$largeimage_name;

                if (
    move_uploaded_file$largeimage "/home/httpd/vhosts/sito.it/httpdocs/public/foto_salento/" .$Filedest )){

                    print 
    "$largeimage copiato con successo in $path/$Filedest";

                    
    $POS strrpos($LARGEFILE,"/");

                    
    $FILE1 "Salento_" .$id_categoria ."_";
                    
    $FILE2 substr($LARGEFILE,$POS);


                    
    $save="ok";

                }else{print 
    "Errore.. upload non riuscito
    "
    ; print $path$save="ko";}

        
    unlink($largeimage);

        }else{print 
    "Errore.. nessun file.";$save="ko";}

    // fine upload primo file


            
    if ($save="ok") {    

            
    $stringsql "INSERT INTO galleria (ID_CATEGORIA, FOTO, CATEGORIA, SOTTOCATEGORIA, DESCRIZIONE) VALUES ('$id_categoria','$FILE1$FILE2', '$id_categoria', '$val_sottocategoria', '$descrizione')";

            
    $result_2 mysql_query($stringsql) or die (mysql_error()); 

            }

    }else{

        if (
    $foto=="ko")

        {echo 
    $foto ."-" .$up ."SI E' RAGGIUNTO IL NUMERO MASSIMO DI FOTO CONSENTITE";}

    }

    ?>    </td>
      </tr>

      <tr>

        <td height="25"></td>

        <td></td>

        <td></td>

        <td></td>

        <td></td>
      </tr>

      <tr> 

        <td height="130" colspan="5" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">

            <form action="?page=gallery" enctype="multipart/form-data" method="post" name="ELIMINA">


    <?php

    // apro la tabella che ci servirà per l'impaginazione
    echo "<table>";

    // recupero i dati dal DB

    $query "SELECT * FROM galleria WHERE galleria.ID_CATEGORIA = " .$id_categoria;
    $res mysql_query($query) or die (mysql_error());

    // numero delle immagini presenti nel DB
    $n_img mysql_num_rows($res);

    // verifico che il DB ospiti almeno un'immagine
    if($n_img >= ){
      
    // stabilisco il numero di righe e colonne della nostra tabella per l'impagninazione
      
    $colonne 5;
      
    $righe=0;

      
    // ciclo tutti i record recuperati attraverso la nostra query
      
    while ($f=@mysql_fetch_array($res)){
        
    $righe++;
        
    $idfoto $f['ID_CONTATORE'];
        
    $titolo stripslashes($f['FOTO']);
        
    $id_categoria stripslashes($f['CATEGORIA']);
        
    $descrizione stripslashes($f['DESCRIZIONE']);

        
    // stampo la cella contenente l'immagine
        
    echo "<td align=\"center\">\n";
        
    //echo $titolo . "
    ";
        echo "
    <input type=checkbox name='$idfoto' value='$idfoto'>
    ";    
        echo "
    <a href=\"/gestionale/?page=visualizza_gallery&action=edit&id="$idfoto "\" target=\"blank\">";
        
    //echo "<a href=\"/public/foto_salento/Salento_". $id_categoria ."_". $titolo . "\" target=\"blank\">";
        //echo "<img src=\"/public/foto_salento/Salento_". $id_categoria ."_". $titolo . "\" border=\"0\" height=\"87\" width=\"116\" alt=". $descrizione ."></a>
    ";
        echo "
    " . 
    $titolo;
        echo "
    </td>\n";

        // quando il numero di righe equivale al valore impostato nella variabile 
    $righe
        // procedo a chiudere la linea e ad azzerare il valore di 
    $righe
        if (
    $righe == $colonne){
          echo "
    </tr><tr>\n";
          
    $righe = 0;
        }
      }
    }else{
      // stampo un messaggio se il DB è vuoto
      echo "
    Nessuna immagine inserita.";
    }
        echo "
    <tr><td colspan=5 height=25 align=center><input type=hidden name=del_id value='$id_categoria'><input type=reset value='Ripristina'><input type=submit value='Elimina Selezionati'>";

    @mysql_close(
    $cn);
    echo "
    </table>";
    ?>
            </form>


    </body>

    </html>
    ---------------------------
    danielix05

  8. #8
    Senti, seriamente, se posso darti un consiglio sul modo di scrivere codice, taglia quello script in almeno 2 pagine, anche se te ne raccomanderei 3:

    - view.php //si occupa solo di mostrare la tabella finale
    - insert.php //si occupa solo di mostrare la form per l'inserimento
    - script/actor.upload.php //A questo file punterà la form del file insert.php e qui caricherai le foto con il move_uploaded_file()


    in actor.upload.php non stampi nulla, perché alla fine fai un header("Location ../view.php?uploaded=yes") se l'upload è a buon fine, oppure un header("Location ../insert.php") in caso di errore, dopo aver settato una variabile di sessione $_SESSION['error'] con l'errore avvento

    in view.php ci metti il link "carica nuova foto", che punta a insert.php ed accetti un parametro GET uploaded che se settato ti mostra un messaggio "nuova foto caricata".

    in insert.php formatta la form, magari senza Table, che le specifiche XHTML dicono di usarle solo per presentare dati e non per formattare il layout, e, in caso ci sia la variabile $_SESSION['error'] settata, mostri l'errore avvenuto in rosso.


    Comunque, alla riga 230 circa, fai

    $sql_foto="SELECT galleria.FOTO FROM galleria WHERE galleria.ID_CATEGORIA = " .$id_categoria;

    $result_foto = mysql_query("$sql_foto")or die (mysql_error());

    $righe_foto = mysql_num_rows($result_foto);



    if ($sql_foto<150){

    $foto="ok";

    }else{

    $foto="ko";

    }

    non sarà if($righe_foto < 150) ?

    come $path ti conviene usare quello relativo '/httpdocs/public/foto_salento'

    Non ho ancora capito che è $largeimage, comnque dovrebbe essere

    if (move_uploaded_file( $LARGEFILE , "/httpdocs/public/foto_salento/" .$Filedest )){

    Scusa ma il path completo (URL completo per vedere le immagini dal browser è
    http://httpdocs/public/foto_salento/nome_immagine?

    Perché se è così va bene quello che ho scritto, se per caso è http://public/foto_salento/nome_immagine
    allora i path diventano /public/foto_salento soltanto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.