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

    [fopen,fwrite,fread,...] Cambio server e l'upload non funziona più

    Mi trovo in una situazione un tantino strana.

    Ho cambiato server per uno dei miei siti e ho trasferito file, database e aggiornato i riferimenti dei vari script.
    Tutto funziona correttamente tranne uno script del mio pannello di amministrazione che mi permette di effettuare l'upload di file da diversi form (pubblicazione immagini per news, pubblicazione gallerie d'immagini e cose del genere).

    Il problema si traduce nel fatto che al termine dell'upload (o presunto tale) il file origine si trasforma in un file da 0KB.

    Il codice relativo all'upload è il seguente:

    Codice PHP:
        function UploadFilez($pagina$pagina_name$destinazione$tipo)
        {
            
    // La directory temporanea serve per mettere temporaneamente i file. Deve essere presente
            // e deve avere tutti i permessi chmod (777). I file verranno cancellati automaticamente
            // dal sistema salvo eventuali interruzioni durante l'upload    
            
    $dir_temporanea "/upload";
            
    $dir_base "/www";
            if (
    $pagina_name != "")
            {
                
    // Se il tipo è uguale ad 1 si utilizza la dir temporanea e si spostano i file utilizzando
                // una connessione FTP. Se il tipo è diverso da 1 si copiano i file direttamente nella dir
                // di destinazione che deve avere tutti i permessi chmod (777).
                
    if ($tipo == 1)
                {
                    
    // Upload senza sovrascrittura. Se il file esiste già, la funzione ritorna conFalse
                    
    if (file_exists("$dir_base/$destinazione/$pagina_name"))
                        return 
    false;
                    
                    
    copy("$pagina""$dir_temporanea/$pagina_name");                
                    
    $fp_orig fopen ("$dir_temporanea/$pagina_name""rb");
                    
    $contenuto fread($fp_origfilesize("$dir_temporanea/$pagina_name"));
            
                    if (
    $fp_dest fopen("ftp://username:password@indirizzoftp/$dir_base/$destinazione/$pagina_name","wb"))
                    {
                         
    fwrite ($fp_dest$contenuto);                
                        
    fclose ($fp_dest);
                        
    fclose ($fp_orig);    
                        
    // Cancellazione del file temporaneo
                        
    unlink("$dir_temporanea/$pagina_name");
                        return 
    true;
                    }             
                    else 
    fclose ($fp_orig);
                
                    
    // Cancellazione del file temporaneo
                    
    unlink("$dir_temporanea/$pagina_name");                
                    
    // Errore nell'upload via FTP
                    
    return false;
                }
                else
                {
                    
    // Upload con sovrascrittura
                    
    if (file_exists("$dir_base/$destinazione/$pagina_name"))
                    {
                        
    // Cancello il file se è già presente
                        
    unlink("$dir_base/$destinazione/$pagina_name");
                    }
                    
    copy("$pagina""$dir_temporanea/$pagina_name");        
                
                    
    $fp_orig fopen ("$dir_temporanea/$pagina_name""rb");
                    
    $contenuto fread($fp_origfilesize("$dir_temporanea/$pagina_name"));
                   
                    if (
    $fp_dest fopen("ftp://username:password@indirizzoftp/$dir_base/$destinazione/$pagina_name","wb"))
                       {
                         
    fwrite ($fp_dest$contenuto);                
                        
    fclose ($fp_dest);
                        
    fclose ($fp_orig);    
                        
    // Cancellazione del file
                        
    unlink("$dir_temporanea/$pagina_name");
                        return 
    true;
                    }             
                    else 
    fclose ($fp_orig);
                    
    // Cancellazione del file temporaneo
                    
    unlink("$dir_temporanea/$pagina_name");
                    
    // Errore nell'upload via FTP
                    
    return false;
                }
            }
            return 
    false;
        } 
    Anche cambiando $dir_temporanea inserendo il path completo (/home/username/www/upload) il risultato non cambia. Naturalmente "upload" è chmod-ata 777.

    Lo script viene "incluso" nella pagina con il forum e utilizzato tramite POST.

    Mi è stato consigliato di verificare con un echo il valore di $contenuto ($_POST['contenuto'] ma non ho ottenuto risultati.
    Ho tentanto (sempre con altri consigli) di utilizzare per la funzione or die("errore") ma lo script mi offre solamente una pagina bianca senza alcuna indicazione d'errore. Se lo rimuovo torna a funzionare ma il file è da 0KB come al solito.

    Qualcuno ha idea di quale possa essere la causa?

    Esaminando la pagina phpinfo del nuovo server tutto ciò che era nella configurazione del precedente c'è... anzi c'è anche diversa roba in più... però non ho più idea di dove sbattermi per correggere l'errore

  2. #2
    Scoperto il problema...

    Grazie ugualmente.

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.