Visualizzazione risultati 1 fino 9 di 9

Discussione: upload file di grandi dimensioni... fa cose assurde

  1. #1
    quattrobi non è connesso Neofita
    Data registrazione
    18-11-2008
    Messaggi
    7

    Predefinito upload file di grandi dimensioni... fa cose assurde

    ho creato una pagine di uplaod che con file piccoli funziona egregiamente.

    tramite html chiedo all'utente di selezionare da una scelta multipla una cartella. Se questa esiste gli concedo l'upload. altrimento lo nego.

    Con un file di grandi dimensioni l'upload parte (quindi il test di esistenza è superato) ma poi si interrompe e mi dà in output il messaggio di test (di esistenza della cartella) fallito. Come è possibile?

    di seguito lo script


    Codice PHP:
    </HEAD>
    <style>
    body{font-family:Comic Sans Ms,helvetica; font-size:10pt}
    A{color:#009349; text-decoration:none}
    A:hover{color:red}
    A:visited:{color:#005329}
    A:visited:hover{color:red}
    TD{font-family:Comic Sans Ms,helvetica; font-size:10pt}
    </style>
    </HEAD>
    <BODY bgcolor="white">

    <?php
    $cl
    =$_POST['cl']; //classe
    $sez=$_POST['sez'];//sezione


    $uploaddir = $cl.$sez; //cartella di upload della classe da creare per quelle classi abilitate all'upload
    $uplddr="./"; //cartella di upload temporanea coincidente con la posizione di questo script
    print "<pre>";

    if (
    file_exists($uploaddir)) {

    move_uploaded_file($_FILES['userfile']['tmp_name'], $uplddr . $_FILES['userfile']['name']);
    $file=$uplddr.$_FILES['userfile']['name'];
    if (
    file_exists($uploaddir."/".$_FILES['userfile']['name'])) echo "ATTENZIONE: il file esiste già e non ti permetto di sovrascriverlo. Cambia nome";
    else {
    echo
    "hai caricato il file "; echo $_FILES['userfile']['name']; echo ". \n";

    copy($file, $uploaddir."/".$_FILES['userfile']['name']);

    $subjiect="upload su quattrobi";
    $headers="From: quattrobi\r\n";
    $headers.="Reply-To: no-replay\r\n";
    $headers .="MIME-Version: 1.0\r\n";
    $headers .="Content-type: text/html; charset=iso-8859-1\r\n";
    $email="nessuna";
    $email="carlo.corio@istruzione.it";
    $message="ti hanno caricato il file ".$_FILES['userfile']['name']." in $cl $sez";
    $send =mail($email,$subjiect,$message,$headers);
    if (!
    $send) echo "purtroppo per problemi tecnici la e-mail di notifica di avvenuto upload a $email non è stata inviata";
    else echo
    "è stata spedita una e-mail di avvenuto upload alla casella di posta elettronica $email";


    }
    unlink($file);
    }
    else echo
    "questa classe non ha diritto di caricare NULLA";
    ?>


    </BODY></HTML>
    Ultima modifica di darkwolf : 16-03-2011 alle ore 20.21.42 Motivo: +bbcode

  2. #2
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Che errore (PHP) ti da?
    Cmq Se con file piccoli funziona e grandi no probabilmente è un problema di timeout dello script, c'è poco da fare.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  3. #3
    quattrobi non è connesso Neofita
    Data registrazione
    18-11-2008
    Messaggi
    7

    Predefinito

    sono disorientato proprio perchè non mi dà alcun errore php, ma mi piazza l'echo che ho messo io nelle script (else echo "questa classe non ha diritto di caricare NULLA";
    )... ma se arriva lì non avrebbe neppure dovuto far partire l'upload!!!!... invece mastica per parecchi minuti.

  4. #4
    Kevinoo non è connesso Utente giovane
    Data registrazione
    14-05-2007
    Residenza
    Burano (Venezia)
    Messaggi
    94

    Predefinito

    Ciao quattrobi,
    secondo me il problema sono le parentesi graffe degli IF. Questo dovrebbe essere il codice corretto:

    Codice:
    <?php
    $cl=1; //classe
    $sez=$_POST['sez'];//sezione
    
    
    $uploaddir = $cl.$sez; //cartella di upload della classe da creare per quelle classi abilitate all'upload
    $uplddr="./"; //cartella di upload temporanea coincidente con la posizione di questo script
    print "<pre>";
    
    if (file_exists($uploaddir)) {
    
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uplddr . $_FILES['userfile']['name']);
    $file=$uplddr.$_FILES['userfile']['name'];
    if (file_exists($uploaddir."/".$_FILES['userfile']['name'])){ echo "ATTENZIONE: il file esiste già e non ti permetto di sovrascriverlo. Cambia nome"; 
    }else {
    echo "hai caricato il file "; echo $_FILES['userfile']['name']; echo ". \n";
    
    copy($file, $uploaddir."/".$_FILES['userfile']['name']);
    
    $subjiect="upload su quattrobi";
    $headers="From: quattrobi\r\n";
    $headers.="Reply-To: no-replay\r\n";
    $headers .="MIME-Version: 1.0\r\n";
    $headers .="Content-type: text/html; charset=iso-8859-1\r\n";
    $email="nessuna";
    $email="carlo.corio@istruzione.it";
    $message="ti hanno caricato il file ".$_FILES['userfile']['name']." in $cl $sez";
    $send =mail($email,$subjiect,$message,$headers);
    if (!$send) echo "purtroppo per problemi tecnici la e-mail di notifica di avvenuto upload a $email non è stata inviata";
    else echo "è stata spedita una e-mail di avvenuto upload alla casella di posta elettronica $email";
    
    
    }
    unlink($file);
    }else{ echo "questa classe non ha diritto di caricare NULLA"; }
    ?>
    Saluti,
    Kevin
    Ultima modifica di Kevinoo : 16-03-2011 alle ore 20.22.53
    "sempre avanti mai indietro, nemmeno per prendere la rincorsa!"

    Associazione Vogaepara Burano

  5. #5
    quattrobi non è connesso Neofita
    Data registrazione
    18-11-2008
    Messaggi
    7

    Predefinito

    boh, mi pare che hai aggiunto le graffe agli if che prevedono una sola istruzione.

    Che sappia io sono superflue. E non si spiega come mai con file piccoli lo script fa proprio ciò che deve. Direi che non è la risposta giusta......

    Comunque grazie

  6. #6
    Kevinoo non è connesso Utente giovane
    Data registrazione
    14-05-2007
    Residenza
    Burano (Venezia)
    Messaggi
    94

    Predefinito

    Citazione Originalmente inviato da quattrobi Visualizza messaggio
    Che sappia io sono superflue.
    Si certo, per una sola istruzione sono superflue. Ma una volta mi è successo che con if else concatenati lo script non funzionava (non dava errori, semplicemente eseguiva sempre l'ultima espressione, come a te). Ho risolto inserendo le parentesi graffe.

    Saluti,
    Kevin
    "sempre avanti mai indietro, nemmeno per prendere la rincorsa!"

    Associazione Vogaepara Burano

  7. #7
    quattrobi non è connesso Neofita
    Data registrazione
    18-11-2008
    Messaggi
    7

    Predefinito

    non sono convinto perchè se si trattasse di un errore del genere avverrebbe sempre, non solo con file grandi. Comunque appena posso provo. Ciao

  8. #8
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Se l'upload va in errore
    http://php.net/manual/en/function.mo...oaded-file.php
    restituisce FALSE
    A quanto ho capito da un warning solo se l'upload funziona ma poi non riesce a spostare il file nella cartella.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  9. #9
    quattrobi non è connesso Neofita
    Data registrazione
    18-11-2008
    Messaggi
    7

    Predefinito

    scusate ragazzi, sono un coxxxxne io: avevo messo un limite alle dimensioni del file nel modulo del file html che chiamava il php..... me ne ero dimeticato e l'ho trovato per caso solo adesso.....

Regole di scrittura

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