Visualizzazione dei risultati da 1 a 8 su 8

Discussione: upload file 0K

  1. #1

    upload file 0K

    Hi guru!
    da vari giorni mi sto arrovellando con un problema di upload file.

    ho un codice che premetto gira sul mio mac.
    premetto che non sono un esperto di sistema e di programmazione ma qualche riga l'ho scritta.

    il problema dello script è che esegeue l'upload ma i file sono di dimensione 0 Kb

    il codice della pagina che richiede è questo:

    <form action="ser.php" method="post" enctype="multipart/form-data">

    <table width="100%" border="0" cellpadding="1">
    <tr>
    <td>">File 1: *</td>
    <td><input type="file" name="upfile1"><?php echo $_SESSION['file1ok']; ?></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td><button type="submit" value="Send your files" name"submit">Send your files</button>


    il codice della pagina ser.php è:

    $rootdir = $_SERVER["DOCUMENT_ROOT"] ."/eService/customer_task/";
    $infile1 = $rootdir .$_FILES["upfile1"]["name"];
    print_r($_FILES["upfile1"]);

    echo "
    FILE1: " .$_FILES["upfile1"]["name"];
    echo "
    size: ".$_FILES["upfile1"]['size'];
    echo "
    tmp_name: ".$_FILES["upfile1"]['tmp_name'];
    echo "
    error: ".$_FILES["upfile1"]['error'];


    echo "
    ------file 1" .$infile1;

    if(is_uploaded_file($_FILES["upfile1"]["tmp_name"])) {

    chmod($_FILES["upfile1"]["tmp_name"], 0777);
    //chmod($infile1, 0777);

    move_uploaded_file($_FILES["upfile1"]["tmp_name"],$infile1)
    or $_SESSION['file1ok'] = "Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload1.";

    chmod($infile1, 0777);

    } else {
    $error = true;
    $_SESSION['file1ok'] = "Problemi nell'upload del file " . $_FILES["upfile1"]["name"];
    echo "prova upload fallita 1";
    }

    echo "
    SESSIONE FILE 1 :" .$_SESSION['file1ok'];

    di seguito in bold le funzioni incriminate:
    is_uploaded_file($_FILES["upfile1"]["tmp_name"]) move_uploaded_file($_FILES["upfile1"]["tmp_name"],$infile1)

    l'output che ottengo è:

    Array ( [name] => Mercato_Immobiliare_Genova_Venezia_2012_2013.png [type] => image/png [tmp_name] => /tmp/phpkv1pxs [error] => 0 [size] => 222535 )
    FILE1: Mercato_Immobiliare_Genova_Venezia_2012_2013.png
    size: 222535
    tmp_name: /tmp/phpkv1pxs
    error: 0
    ------file 1/var/www/eService/customer_task/Mercato_Immobiliare_Genova_Venezia_2012_2013.png Warning: move_uploaded_file(): Unable to move '/tmp/phpkv1pxs' to '/var/www/eService/customer_task/Mercato_Immobiliare_Genova_Venezia_2012_2013.png' in /var/www/eService/match/ser.php on line 34
    SESSIONE FILE 1 :Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload1.

    il warning importante è
    Warning: move_uploaded_file(): Unable to move '/tmp/phpkv1pxs' to '/var/www/eService/customer_task/Mercato_Immobiliare_Genova_Venezia_2012_2013.png'


    le ho provate tutte:
    nella directory /tmp esiste il file indicato (in questo caso /tmp/phpkv1pxs)
    la directory /tmp ha i diritti 777
    la directory /var/www è assegnata all'utente www-data (utente di apache)
    la directory /var/www/eService/customer_task/ ha i permessi 777

    vi chiedo un aiuto, forse è un problema di configurazione del server (UBUNTU Server 12.04) nel file php.ini oppure httpd.conf.

    thanks in advance

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Come "sono di dimensione 0 Kb"? Evidentemente il file caricato è 217,32 KB, cioè il problema sia che move_uploaded_file() non te lo possa spostare. Allora dovresti verificare che ci siano i permessi giusti su /var/www/eService/customer_task

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Originariamente inviato da neroux
    Come "sono di dimensione 0 Kb"? Evidentemente il file caricato è 217,32 KB, cioè il problema sia che move_uploaded_file() non te lo possa spostare. Allora dovresti verificare che ci siano i permessi giusti su /var/www/eService/customer_task
    grazie carissimo per la risposta, ma purtroppo ho già provato tutte le possibilità. in questo momento la cartella /var/www/eService/customer_task ha i privilegi 777 e appartiene all'utente www-data, cioè lo stesso che sposta i file (utente di apache).

    lo stesso codice su mac gira



    please help me!!!!!

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Ma perché cambi i permessi al file in tmp? Tanto da li devi spostarlo, e se non riesci a spostarlo pe rmotivi di permessi non riuscirai tantomeno a dargli permessi meno restrittivi.

    Il file caricato in tmp è di www-data, è inutile dargli altri permessi. Inoltre 777 specie su file caricati dagli utenti non lo si da mai.

    il file in tmp riesci a leggerlo? Hai provato invece di utilizzare move_uploaded_file, un semplice copy?

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Prova
    Codice PHP:
    touch('/var/www/eService/customer_task/demofile'); 
    se poi demofile non c'è ci sarà un problema coi permissi.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  6. #6
    grazie, provo appena posso. provo anche a copiare il file con una shell_exec ...

    scusa l'ignoranza cerco un po su google ma non conosco il comando!

    cmq sei preziosissimo!!!! ;o)))))

  7. #7
    ho provato a usare copy e shell_exec(cp....) il risultato è sempre lo stesso.

    copia il file vuoto!

    così anche demofile! è 0Kb

    evidentemente il problema sta nei permessi... ora mi chiedo

    l'utente www-root è quello di apache, le directory /var/www e tutte le sottodirectory sono dell'utente www-root e /var/www/eService/customer_task ha i permessi 777

    non riesco a capire dove sbaglio...

    può esserci qualche configurazione del file php.ini o http.conf?

  8. #8
    hi GURU ho risolto.

    il problema stava nell'occupazione dello spazio disco. Mi era esploso un file di log (error.log di /var/log/apache2) ed aveva occupato tutto lo spazio della macchina virtuale.

    adesso funziona perfettamente.

    grazie del prezioso supporto

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.