Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Problema di upload

  1. #1

    Problema di upload

    Ciao,
    nel mio sistema di upload file su server, ho il problema di caricare file piuttosto pesanti.
    Fino a 7 Mb circa tutto funziona a dovere. Quando i file diventano più grandi invece (anche "solo" 10 Mb) non vengono caricati nonostante non compaiano messaggi d'errore ed il parametro "upload_max_filesize" nel php.ini sia impostato a 50 MB.
    Da cosa può dipendere?


    Grazie mille,
    PURAVIDA

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Forse potrebbe dipendere dal tempo di vita massimo dello script.
    Se postavi l'errore potevo dirlo con sicurezza.
    Prova ad impostare il tempo di vita in cima al tuo script con set_time_limit(600) ( 600 secondi, 10 minuti, dovrebbero bastare )
    Ciao

  3. #3
    un'altra soluzione ke potresti usare, se il problema è il tempo di esecuzione, è stampare di tanto in tanto qualcosa con echo, tipo dei . (io facevo così....)

    ciauz mix

    Errare e' umano, ma per fare veramente casino serve la password di root.
    Coltiva Linux........Tanto windows si impianta da solo!!!!!
    PHP 4 Ever

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    un'altra soluzione ke potresti usare, se il problema è il tempo di esecuzione, è stampare di tanto in tanto qualcosa con echo, tipo dei . (io facevo così....)
    Scusa ma, in che senso?
    Se tu provassi a stampare su schermo qualsiasi cosa durante l'esecuzione dello script di upload questo ti sarebbe restituito alla fine e tutto in una volta.

  5. #5
    Ciao Razorblade,
    innanzitutto grazie per aver risposto al mio appello.
    L'errore non l'ho postato semplicemente perchè non ricevo nessun messaggio d'errore.
    La pagina dalla quale il file viene spedito rimane la stessa, senza che si ricarichi con il messaggio di conferma che normalmente scrive.
    Ho provato ad impostare anche il valore seconds di set_time_limit a 0 ma senza risultato.
    Ti posto il codice, magari c'è un errore del quale non mi sono accorto.

    <?php

    set_time_limit(0);

    $cartella = $_POST['cartella'];

    $filetmpname=$_FILES["file"]["tmp_name"];
    $file=$_FILES["file"]["name"];
    $filesize=$_FILES["file"]["size"];
    $filetype=$_FILES["file"]["type"];

    include ("head.php");
    echo '<body>[img]imgs/logo.jpg[/img]

    ';
    if ($file){
    copy($filetmpname,"ftp/$cartella/$file");
    unlink($filetmpname);
    echo 'il file "'.$file.'" è stato copiato nella cartella "'.$cartella.'"
    ';
    }

    echo'
    <form action="'.$php_self.'" method="post" enctype="multipart/form-data">
    Scegli la cartella in cui caricare i files:
    <select name="cartella">';

    // elenco delle cartelle contenute dentro la cartella "ftp"
    $cartella = opendir('ftp');
    while ($file = readdir($cartella)) {
    # aggiunge l'elemento all'array
    $array_nomi_file[] = $file;
    }
    foreach ($array_nomi_file as $file) {
    if ($file == "." || $file == ".."){
    continue;
    }
    echo '<option value="'.$file.'">'.$file.'</option>';
    }
    echo'
    </select>


    Scegli i files da caricare:
    <input type="file" name="file">


    <input type="submit" value="Carica i files">
    </form>

    ';

    echo 'Torna a gestione cartelle ftp</body></html>';

    ?>

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    si di errori ne vedo molti:

    Codice PHP:
    $php_self 
    Questa variabile non esiste. Forse ti riferivi a $_SERVER['PHP_SELF'] ( per sicurezza controlla se $_SERVER['PHP_SELF'] ha effettivamente un valore sul server su cui stai testando ).
    Magari è per questo che il form non ti manda da nessuna parte.
    Inoltre non usare copy() per lo spostamento dei files uploadati.
    Devi usare invece l'accoppiata is_uploaded_file() e move_uploaded_file().
    Ti rimando su www.php.net per ulteriori chiarimenti ed esempi.
    Fammi sapere.
    Ciao


    ...e dimenticavo:
    tutti gli input utente vanno sempre controllati e filtrati!

    Codice PHP:
    $cartella $_POST['cartella']; 
    Esistono programmi o anche la funzione fsockopen() di php che possono emulare invii POST da form, quindi tecnicamente chiunque sarebbe in grado di inviare in post un qualsiasi valore per la tua variabile $cartella.
    Se $cartella fosse uguale a C:/ ?

  7. #7
    Ciao,
    la variabile $php_self è il nome del file in cui è contenuta.
    Comunque, per ridurre al massimo le possibilità di errori l'ho sostituita con il nome del file a cui deve puntare il form.

    Per la gestione del file ho usato la coppia is_file_uploaded e move_uploaded_file come mi hai consigliato per avere la certezza assoluta che tutto sia al posto giusto.
    Questa è la parte di codice che ho variato.

    if ($file){
    $verifica = is_uploaded_file($file);
    if ($verifica == "false"){
    echo 'file non uploadato';
    exit;
    }
    move_uploaded_file($filetmpname, "ftp/$cartella/$file");
    echo 'il file "'.$file.'" è stato copiato nella cartella "'.$cartella.'"
    ';
    }

    Il risultato purtroppo è lo stesso: con i file di dimensioni piccole tutto ok, mentre quelli grossi non li carica.

    ?????????????????

  8. #8
    ciao, prova così:
    Codice PHP:
    if ($file){
    if (
    is_uploaded_file($file)){
    move_uploaded_file($filetmpname"ftp/$cartella/$file");
    echo 
    'il file "[b]'.$file.'[/b]" è stato copiato nella cartella "'.$cartella.'"
    '
    ;
    }
    echo 
    'file non uploadato';
    exit;

    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  9. #9
    Niente da fare. In questo modo non carica nemmeno i file piccoli.



  10. #10
    questo è l'indirizzo per vedere il phpinfo() relativo al server su cui sto operando: http://webx.aruba.it/ver.php

    Grazie,
    Puravda

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 © 2024 vBulletin Solutions, Inc. All rights reserved.