Visualizzazione risultati 1 fino 5 di 5

Discussione: upload file in php non funziona

  1. #1
    Guest

    Question upload file in php non funziona

    salve ragazze è la prima volta che scrivo in un forum ..ma sto letteralmente impazzendo ... il problema è questo...
    sto lavorando in locale con php/apache e sto cercando di fare l'upload di file... ho trovato numerosi script su internet e li ho provati tutti ma ho sempre lo stesso problema ovvero se faccio l'upload di un file di 5119 KB tutto va a buon fine e il programmino oltre a fare l'upload mi scrive questo:

    size: 5119
    tmp_name: C:\phpTempUpload\php2B.tmp
    error: 0
    Operazione eseguita con successo. Upload riuscito.

    ma se provo con lo stesso file a cui ho aggiunto un solo carattere ovvero di 5120 KB questo è quello che mi da in output

    size: 0
    tmp_name:
    error: 2
    Impossibile effettuare l'upload del file

    l'errore due vul dire che sto eccedendo la massima taglia di file che posso uplodare ma qui viene il bello... ecco i parametri nel php.ini:

    upload_max_filesize = 2M
    post_max_size = 8M
    max_execution_time = 30
    max_input_time = 60
    memory_limit = 128M

    ed in piu mi da size zero e tmp_name vuotooooo

    ed ecco lo script che gira in rete:

    Codice PHP:
    <?
    $cartella_upload
    ="uploadImg/";
    $filtrare=0;
    //filtrare x estensioni ammesse? 1=si 0=no
    $array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png');
    //estensioni ammesse


    echo "<br>size: ".$_FILES['uploadfile']['size'];
    echo
    "<br>tmp_name: ".$_FILES['uploadfile']['tmp_name'];
    echo
    "<br>error: ".$_FILES['uploadfile']['error'];
    if(!isset(
    $_FILES['uploadfile']))
    {
    echo
    "Nessun file selezionato per l'upload";
    }
    else
    {
    $nome_file=$_FILES['uploadfile']['name'];
    $errore="";
    if(
    $filtrare==1)
    {
    $estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
    if(!
    in_array($estensione,$array_estensioni_ammesse))
    {
    $errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."<br/>";
    }
    }

    if(!
    file_exists($cartella_upload))
    {
    $errore.="La cartella di destinazione non esiste</br>";
    }
    if(
    $errore=="")
    {
    if(
    move_uploaded_file($_FILES['uploadfile']['tmp_name'], $cartella_upload.$_FILES['uploadfile']['name']))
    {
    chmod($cartella_upload.$_FILES['uploadfile']['name'],0777); //permessi per poterci sovrascrivere/scaricare
    echo "Operazione eseguita con successo. Upload riuscito.";
    }
    else
    {
    echo
    "Impossibile effettuare l'upload del file";
    }
    }
    else
    {
    echo
    $errore;
    }
    }

    ?>
    RAGAZZI COSA MI SFUGGEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!
    Ultima modifica di debug : 15-01-2009 alle ore 01.02.35 Motivo: usa gli appositi tag quando posti del codice

  2. #2
    Guest

    Predefinito

    Mi pare strano che tu riesca a caricare via http un file da 5MB quando il limite è di 2...

    Calcolando che il primo file (quello che riesci a caricare) pesa meno di 5 mb (5119/1024 = 4.99MB) e il secondo è esattamente 5 mega, mi viene il dubbio che invece di upload_max_filesize = 2M hai upload_max_filesize = 5M

    Assicurati di questo.
    Non è raro confondersi con altri php.ini presenti nel pc.


    Ciao!

  3. #3
    Guest

    Predefinito

    sapevo che mi sarei espresso male ... scusatemi ..il problema è che il file che sto cercando di uplodare è di 5.120 byte e non kb come erroneamente riportato prima.
    Ecco perchè è allucinante ... quando prima di fare l'upload vedo le prorietà del file txt mi dice 5.120 byte e in output mi da questo:

    size: 0
    tmp_name:
    error: 2
    Impossibile effettuare l'upload del file

    mentre con lo stesso file da 5.119 byte dove ho tolto per prova un solo carattere va tutto bene ... che mi dite ora ?? :-(

    ah un altra cosa il php.ini da cui ho preso i settaggi è esattamente quello che mi da la phpinfo()... sebbene come dici tu sul pc ce ne sono un altro paio ..dove comunque i settaggi sono identici
    Ultima modifica di lfmgroup : 15-01-2009 alle ore 11.24.53

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da lfmgroup Visualizza messaggio
    size: 0
    tmp_name:
    error: 2
    Impossibile effettuare l'upload del file
    error: 2 significa che hai superato il limite di upload specificato nel form html, quindi PHP ti dà errore, modifica il form nella tua pagina, dovrebbe esserci qualcosa del tipo (se non c'è aggiungilo):
    Codice:
    <input type="hidden" name="MAX_FILE_SIZE" value="500" />
    cambia value con un valore più alto se necessario (è espresso in kB)

    Inoltre al tuo codice php puoi aggiungere questa funzione (presa dal manuale PHP):
    Codice PHP:
    function file_error_return($error) {
    switch(
    $error) {
    case
    1 : $output = "The uploaded file exceeds the upload_max_filesize directive in php.ini.<br />";break;
    case
    2 : $output = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.<br />";break;
    case
    3 : $output = "The uploaded file was only partially uploaded.<br />";break;
    case
    4 : $output = "No file was uploaded.<br />";break;
    case
    6 : $output = "Missing a temporary folder.<br />";break;
    case
    7 : $output = "Failed to write file to disk.<br />";break;
    case
    8 : $output = "File upload stopped by extension.<br />";break;
    default:
    $output = "";
    }
    return
    $output;
    }
    richiamandola così ad esempio:
    Codice PHP:
    echo file_error_return($files["error"][$i]); // non restituisce nulla se va a buon fine
    Spero sia di aiuto

  5. #5
    Guest

    Predefinito

    infatti hai ragione nello script html che richiama la pagina php c'era sto campo hidden che filtrava limitandomi l'upload ... non lo avevo notato....

    grazie ancora ci risentiamo ai prossimi problemi :-)))

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •