• User

    Velocizzare upload file

    Salve per un mio progetto ho bisogno di trasferire fino a 10 fil di grandi dimensioni (toale oltre i 250 mb) i tempi di risposta di move_uploaded_file sono molto grandi ,ho provato ad eseguire l'upload con ajax ma non cambia niente e anche se forzo la risposta :

    
    ignore_user_abort(true);
    set_time_limit(0);
    
    
    ob_start();
    
    
    // do initial processing here
    echo 'File Inviati';
    
    
    header('Connection: close');
    header('Content-Length: '.ob_get_length());
    ob_end_flush();
    ob_flush();
    flush();
    
    
    

    Ho il browser bloccato fino alla fine dello script , soluzioni ?


  • User

    Passare ad FTP, ma non so al momento come; purtroppo il trasferimento file tramite il protocollo http è quello, non c'è altro da fare.
    Anzi, sì, potresti spezzettare il file in spezzoni di pochi kilobyte e riunirli una volta terminato il trasferimento, è un palliativo non la soluzione.


  • User

    Ciao,

    Un paio di considerazioni:

    Se usi un approccio "statico", ovvero un semplice form HTML con upload POST, il browser restera' bloccato fino alla fine dell'operazione di upload. Questo significa che dovrai aspettare sia che l'upload sia completato e che qualunque operazione php che avviene in seguito abbia finito.

    Ci sono varie library basate su jQuery che permettono upload di tipo asynchronous ( Eg: github.com/danielm/uploader/) - Certo richiedono comunque che l'utente resti sulla pagina, ma il browser per se non resta bloccato e se usi un framework tipo Angular JS o React possono continuare a navigare sul tuo sito.

    Inoltre, non capisco perche' tu muova il file come parte della procedura di upload. Potresti caricare tutto su una cartella temporanea, lasciare andare l'utente e separatamente spostarlo dovunque serva.

    :ciauz: