PHP中文件上传的最大大小限制

3

我正在使用cakephp实现一个文件上传系统。我使用的是php 5.2.5和cakephp 1.2。下面我已经提到了我在php.ini中设置的最大文件大小。

post_max_size = 2000M
upload_max_filesize = 1800M 
memory_limit = 3328M  

但是我需要上传5GB的文件,当我在php.ini中更改文件上传大小为5GB时,Web服务器没有响应。有什么方法可以用来上传5GB的文件到我的系统?如何计算我可以在php.ini中配置的最大文件大小。

通过迁移到php 5.3,我是否能够支持更多的文件上传容量。

干杯!


大多数情况下,这些设置是基于服务器的。 - Emmanuel N
4
通过HTTP上传5GB的数据并不切实际,建议尝试使用FTP。 - TJHeuvel
3个回答

2
据我所知,使用HTML表单上传5GB的数据是非常大的。请注意,二进制数据通常以原始8位读取,但TCP/IP协议栈仅支持7位字符集进行传输。因此,您的所有数据都会被包装在另一个BASE64代码中,这会给您的数据增加约40%的开销,因此总共为6+ GB。我不知道上传大小是否应该包括此开销,但您可以尝试将其添加到最大发布大小中,因为根据文档,最大发布大小应该是上传大小的两倍。我还建议您使用lighttpd + fast-cgi。

我在这里使用的上传程序不仅仅是HTML页面。我使用的是Flex前端。 - Shanaka
1
也许您想要使用lighttpd + fastcgi。 - Micromega
谢谢您的输入。我会检查的。 - Shanaka
是的,lighttpd性能很好,而且配置并不那么复杂,尽管Apache的文档非常庞大。 - Micromega

0

而且你要用一个 Web 表单上传那 5GB 的文件?这将需要很长时间。你应该使用 FTP。


是的,这就是我向客户建议的(FTP)。但他想要这个功能。有没有相应的配置? - Shanaka
1
我认为你必须说服你的客户这是不可能的 :) - Mārtiņš Briedis

0

同时设置max_input_time变量,否则PHP在读取上传的文件时可能会超过输入时间并停止执行。

使用Flash上传器(uploadify可能适用)-因为浏览器会挂起并且不会等待服务器响应。


问题是,当我将这些参数更改为超过2000MB时,Web服务器无法正常执行。 - Shanaka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接