Note that there are some explanatory texts on larger screens.

plurals
  1. PO4GB HTTP File Uploads Using jQuery-File-Upload, Apache and PHP
    primarykey
    data
    text
    <p>This problem seems directly related to the infamous 2GB limit and I'm not sure at this atge if its a 32bit PHP issue. I've seen the comments related to HTTP not being designed for such large files. However, I would rather exhaust this direction before deciding on any fundamental change to what has been proven to work so far. As the title suggest I need to upload >2GB files, largest so far 3.8GB. I have a form built using jQuery-file-upload which has had no problems sending any files (all less &lt;2GB) until these large ones started. The 3.8GB one takes maybe 5 minutes to upload from File-Upload and the progress bar completes to 100%. However the reported error after upload is a type 1 which suggests the file size limit has been breached.</p> <p>If I monitor the disk usage on the server during upload it will have the following sample properties: Before upload the disk is 30% used, as the upload continues this usage increases, 31%,32%....45%,46%etc. However at around the 2GB point the disk usage drops back to 30% while the client/browser File-Upload continues. When the servers disk usage stops increasing the client may only be at 60% of the upload. Yet the client still continues to 100% but isn't being accepted by the server as the disk status never moves off 30%.</p> <p>I'm running 64Bit Ubuntu (latest) with Apache/2.2.22 (Ubuntu) and PHP Version 5.3.10-1ubuntu3.2 After many days on and off searching for a solution I still cannot get the 3.8GB file to upload after changing so many settings. I'll list the sort of changes below but at this stage I think it may be a 32bit PHP issue so if anyone can suggest a link worth following or solution worth trying I'd appreciate it.</p> <p>In Apache2 I've set the following:</p> <pre><code>- 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 </code></pre> <p>In php.ini I've set the following:</p> <pre><code>- UPLOAD_MAX_FILESIZE 4831838208 - POST_MAX_SIZE 4939212390 - max_execution_time 120 - max_input_time 60 - memory_limit 128M </code></pre> <p>If I run the following on the server it would seem the PHP does not have a 32bit issue but I'm not sure at this stage.</p> <pre><code>php -r "echo PHP_INT_MAX;" 9223372036854775807 </code></pre> <p>As I mentioned any ideas would be greatly appreciated.</p> <p>UPDATE:</p> <p>Have solved this issue, so thanks to @BogdanBurim for suggesting the back to basics approach:</p> <p>I have managed to upload a 3.8 GB file over HTTP with the following settings:</p> <p>In Apache2 I've set the following:</p> <pre><code>- 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 </code></pre> <p>In php.ini I've set the following:</p> <pre><code>- UPLOAD_MAX_FILESIZE 0 - POST_MAX_SIZE 4939212390 - max_execution_time 120 - max_input_time 60 - memory_limit 128M </code></pre> <p>The only other important part of this solution was having to remove the MAX_FILE_SIZE, HTML from the upload form:</p> <pre><code>&lt;input type="hidden" name="MAX_FILE_SIZE" value="4939212390" /&gt; </code></pre> <p>Having this set continually caused a PHP type 2 error, so php couldn't handle the greater than 32bit integer that is set. Removing it caused PHP type 1 errors until I changed the UPLOAD_MAX_FILESIZE to 0 everywhere and hey presto it now works!!!!</p> <p><a href="http://php.net/manual/en/features.file-upload.errors.php" rel="noreferrer">http://php.net/manual/en/features.file-upload.errors.php</a></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload