Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Incrementare la performance in locale e in rete di uno script in PHP

    Ho quasi terminato un piccolo script in PHP che permette il download e l’upload di file da un dominio. Il locale non riesco a superare i 700MB. Ho provato a caricare dell’htdocs di XAMPP un film di 1,2GB ma lo script mi da questo errore:

    Warning: POST Content-Length of 1255496295 bytes exceeds the limit of 1073741824 bytes in Unknown on line 0



    Ho anche provato a settare nel php.ini le seguenti variabili:

    memory_limit=13072M
    default_socket_timeout=86400




    eppure il file da 1.2GB non riesco proprio a caricarlo. Il mio pc ha 6 core e 16GB di memoria!
    Per quanto riguarda il server reale (hosting condiviso da circa 20 euro anno) il problema è la mia connessione che raggiunge come massimo i 0.34 Mbps e il timeout limitato settato dal provider. Su quest’ultimo riesco al massimo a caricare 10MB poi si pianta tutto.



    Le mie richieste sono 3:

    1.Come devo impostare il mio XAMPP per riuscire a caricare il file da 1.2GB?
    2.Come devo modificare il mio script per riuscire a caricare file molto più grandi di quelli attuali?
    3.Con php si possono raggiungere livelli di performance simili al servizio gratuito wetransfer?

    Lo script molto deludente che utilizzo è questo:

    Codice PHP:
        if (file_exists($_FILES['upload']['tmp_name'])) {
            if (!
    is_uploaded_file($_FILES['upload']['tmp_name'])) {
                
    $error 'Non ci sono file caricati.';
                include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.php';
                exit();
            }
            
    $uploadfile $_FILES['upload']['tmp_name'];
            
    $uploadname time() . $_FILES['upload']['name'];
            
    $uploadname str_replace(' ''_'$uploadname);
            
    $uploadtype $_FILES['upload']['type'];
            
    $uploaddesc $_POST['desc'];
            
    $url $_SERVER['DOCUMENT_ROOT'] . "/$nome_cartella_download/" $uploadname;
            try {
                
    copy($uploadfile$url);
            } catch (
    Exception $e) {
                
    $error 'Copia del file sul server non riuscita.';
                include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.php';
                exit();
            }
        } else {
            
    $uploadname '';
            
    $uploadtype '';
            
    $uploaddesc '';
        } 




    Velocità di connesione calcolata con questo sito: http://www.speedtest.net/
    Ultima modifica di giannino1995; 17-05-2014 a 00:54
    Più pratica in futuro...

  2. #2
    prova a settare:
    1) upload_max_filesize
    2) post_max_size

    In locale puoi sucuro. Online dipende dai permessi che ti concede il tuo hosting (e qui la vedo dura).
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    In locale dev andare nel php.ini e settare quanto detto da oly1982 e dovrebbe sistemarsi tutto.
    Essendo un hosting condiviso probabilmente non ti faranno cambiare il php.ini (anche se in alcuni invece si), quindi puoi optare per un upload da ftp e poi il link rimane sempre uguale. Se però sono gli utenti che devono caricare dei file, allora un upload in html5 o flash non risolverebbe (lo chiedo, in quanto non mi mai successo un problema del genere)

  4. #4
    Se non si può fare allora come fa wetransfer a permettere l'upload fino a 2GB, gratuitamente e dicendoti pure la % di file salvato su server secondo per secondo?

    Vado a provare le modifiche.
    Più pratica in futuro...

  5. #5
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Da quanto ho capito tu stai usando un hosting condiviso... Questi hosting non permettono di creare dei file hosting in quanto mettono spesso spazio illimitato a prezzo bassissimo, quindi per tutelarsi mettono dei limiti sull'upload e non rendono possibile la modifica del php.ini... Ci potessi accedere allora potresti farlo. Se ti serve devi usare o un VPS, o un dedicato o uno shared con scritto esplicitamente che puoi modificare il php.ini

  6. #6
    Quote Originariamente inviata da oly1982 Visualizza il messaggio
    prova a settare:
    1) upload_max_filesize
    2) post_max_size

    In locale puoi sucuro. Online dipende dai permessi che ti concede il tuo hosting (e qui la vedo dura).
    No, neppure con queste impostazioni funziona:

    upload_max_filesize=11024M
    post_max_size=11024M
    memory_limit=13072M
    default_socket_timeout=86400

    Warning: POST Content-Length of 1252324824 bytes exceeds the limit of 1073741824 bytes in Unknown on line 0
    Più pratica in futuro...

  7. #7
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Se non si può fare allora come fa wetransfer a permettere l'upload fino a 2GB, gratuitamente e dicendoti pure la % di file salvato su server secondo per secondo?
    ...magari pagando fior di soldoni per i propri server?!?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Comunque non avete risposto alla mia seconda domanda: come posso migliorare il mio codice php in modo da poter caricare file molto più grandi di quelli attuali? FileZilla, per esempio, mi permette di caricare file di 100MB senza problemi.
    Più pratica in futuro...

  9. #9
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Se non si può fare allora come fa wetransfer a permettere l'upload fino a 2GB, gratuitamente e dicendoti pure la % di file salvato su server secondo per secondo?

    Vado a provare le modifiche.
    Quei servizi non usano php per ricevere i file ma server (nel senso di software) appositi.

  10. #10
    Ma dai!!! Ci deve essere un sistema per raggiungere almeno un misero 50MB!!! Secondo me non volete dirmelo... non ci credo che devo limitare gli upload a 5MB! Non si può spezzare il file in parti più piccole e caricarlo a pazzi con javascript o jquery... mi sembra strano che non esistano librerie già preconfezionate...
    Più pratica in futuro...

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.