使用PHP上传大于2GB的文件

Rea*_*ado 10 php post file-upload

我正在尝试将大于2GB的文件上传到本地PHP 5.3.4服务器.我设置了以下服务器变量:

memory_limit = -1
post_max_size = 9G
upload_max_filesize = 5G
Run Code Online (Sandbox Code Playgroud)

但是,在error_log中我发现:

PHP警告:POST内容长度2120909412字节超过了第0行的Unknown中1073741824字节的限制

谁能告诉我为什么这会一直失败呢?

小智 9

我有类似的问题,但我的配置是:

post_max_size = 1.8G
upload_max_filesize = 1.8G
Run Code Online (Sandbox Code Playgroud)

然而我无法上传1.2GB文件.错误非常相似:

PHP Warning:  POST Content-Length of 1347484420 bytes exceeds the limit of 1073741824 bytes in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

我花了一天的时间想知道这个"极限1073741824"来自哪里!

方案:

实际上,错误发生在php.ini解析器中:它只能理解INTEGER数字,所以基本上它解析1.8G1G!!

将值更改为例如1800M修复它.

请确保使用以下命令service apache2 restart重新启动 apache服务器


reg*_*ero 2

也许这可能来自 apache 对 POST 大小的限制:

http://httpd.apache.org/docs/current/mod/core.html#limitrequestbody

看来 2Gb 的限制在 64 位安装上可能会更大。我不确定在此指令中设置 0 不会达到编译限制。请参阅线程的示例:

http://ubuntuforums.org/archive/index.php/t-1385890.html

然后不要忘记更改 PHP 中的 max_input_time 。

但你已经达到了很高的限制:-)也许你可以尝试在浏览器端使用富客户端(flash?js?),以块或某种 FTP 的方式进行传输,并为用户提供进度指示器。