Questo problema sembra direttamente correlato al famigerato limite di 2 GB e non sono sicuro di questo problema se si tratta di un problema PHP a 32 bit. Ho visto i commenti relativi a HTTP non progettati per file così grandi. Tuttavia, preferirei estrapolare questa direzione prima di decidere in merito a qualsiasi cambiamento fondamentale a ciò che è stato dimostrato funzionare fino ad ora. Come suggerisce il titolo, ho bisogno di caricare> 2 GB di file, il più grande finora 3,8 GB. Ho un modulo creato utilizzando jQuery-file-upload che non ha avuto problemi nell'invio di file (tutti meno < 2GB) fino a quando non sono stati avviati questi file di grandi dimensioni. L'intervallo di 3,8 GB richiede forse 5 minuti per il caricamento da Caricamento file e la barra di avanzamento viene completata al 100%. Tuttavia, l'errore segnalato dopo il caricamento è un tipo 1 che suggerisce che il limite di dimensioni del file è stato violato.Caricamenti di file HTTP da 4 GB utilizzando jQuery-File-Upload, Apache e PHP
Se si monitora l'utilizzo del disco sul server durante il caricamento, avrà le seguenti proprietà di esempio: Prima di caricare il disco viene utilizzato il 30%, poiché il caricamento continua a incrementare questo utilizzo, 31%, 32% .... 45%, 46%, ecc. Tuttavia attorno al punto da 2 GB l'utilizzo del disco scende al 30% mentre il caricamento file client/browser continua. Quando l'utilizzo del disco del server smette di aumentare, il client può essere solo al 60% del caricamento. Tuttavia, il client continua a raggiungere il 100% ma non viene accettato dal server poiché lo stato del disco non si sposta mai del 30%.
Io corro Ubuntu a 64bit (ultima) con Apache/2.2.22 (Ubuntu) e PHP versione 5.3.10-1ubuntu3.2 Dopo molti giorni e disattivare la ricerca di una soluzione che ancora non può ottenere il 3.8GB file da caricare dopo aver modificato così tante impostazioni. Elencherò il tipo di modifiche di seguito ma a questo punto penso che potrebbe trattarsi di un problema PHP a 32 bit, quindi se qualcuno può suggerire un link che valga la pena di seguirlo o una soluzione che valga la pena provarlo, lo apprezzerei.
In Apache2 Ho impostato il seguente:
- apache2.conf I've set Timeout to 900
- httpd.conf I've set LimitRequestBody to 0
- .htaccess in the file upload directory I've set:
- LimitRequestBody to 4939212390
- php_value upload_max_filesize 4831838208
- php_value post_max_size 4939212390
In php.ini ho impostato il seguente:
- UPLOAD_MAX_FILESIZE 4831838208
- POST_MAX_SIZE 4939212390
- max_execution_time 120
- max_input_time 60
- memory_limit 128M
Se eseguo il seguente sul server sembrerebbe la PHP non ha un problema a 32 bit, ma non ne sono sicuro in questa fase.
php -r "echo PHP_INT_MAX;"
9223372036854775807
Come ho già detto qualsiasi idea sarebbe molto apprezzata.
UPDATE:
hanno risolto questo problema, quindi grazie a @BogdanBurim per suggerire la parte posteriore per approccio basi:
sono riuscito a caricare un file di 3,8 GB su HTTP con le seguenti impostazioni:
In Apache2 ho impostato il seguente:
- apache2.conf I've set Timeout to 900
- httpd.conf I've set LimitRequestBody to 0
- .htaccess in the file upload directory I've set:
- LimitRequestBody to 0
- php_value upload_max_filesize 0
- php_value post_max_size 4939212390
- .htaccess in the php temp directory (in my case its /tmp/) I've set:
- LimitRequestBody to 0
- php_value upload_max_filesize 0
- php_value post_max_size 4939212390
in PHP.ini Ho impostato il seguente:
- UPLOAD_MAX_FILESIZE 0
- POST_MAX_SIZE 4939212390
- max_execution_time 120
- max_input_time 60
- memory_limit 128M
L'unica altra parte importante di questa soluzione è stato dover rimuovere il MAX_FILE_SIZE, HTML dal modulo di upload:
<input type="hidden" name="MAX_FILE_SIZE" value="4939212390" />
Avere questo set continuamente provocato un PHP errore di tipo 2, quindi php non può gestire il numero intero maggiore di 32 bit impostato. La rimozione ha causato errori di tipo 1 di PHP fino a quando ho cambiato UPLOAD_MAX_FILESIZE a 0 ovunque e hey presto ora funziona !!!!
http://php.net/manual/en/features.file-upload.errors.php
correlato: http://stackoverflow.com/questions/50 53290/large-file-upload-though-html-form-more-2-gb – valentinas
Prova a caricare file con un semplice modulo HTML e .. Si romperà? Forse vedrai l'esatto messaggio di errore. –
Grazie a @BogdanBurim Darò questa prova più tardi e aggiornerò – Diplonics