增加max_post_size和upload_max_filesize有什么警告?

时间:2009-11-17 23:34:46

标签: php upload

我想在我的服务器上增加max_post_size和upload_max_filesize,以便我的应用程序将处理更大的文件(大到2GB)。但在我这样做之前,有什么警告?显然,PHP开发人员将大小设置为低是有原因的。我是否需要一定数量的RAM用于操作?任何见解都会有所帮助。

3 个答案:

答案 0 :(得分:2)

我看到的最大问题之一是,POSTS是一次性交易。我的意思是,如果您的客户端正在上传一个非常大的文件,并且当它们完成90%时会发生网络中断,那么它们必须从头开始。

我相信有基于Flash和Java的解决方案,它们将以块的形式上传文件,以便在您的服务器上重建。我只使用了一个名为Jets3t的亚马逊S3服务,但希望其他人可以推荐另一个。

答案 1 :(得分:0)

发布的数据在发布时会流式传输到内存中。将最大帖子大小乘以您希望在任何时候发布最大值的用户数,即在所有会话/进程中保存发布数据所需的内存量。

您的上传最大尺寸必须小于最大邮寄尺寸。最大帖子大小和上传文件大小的差异是可用于注释或消息内容等数据的数据量。

但实际上,让用户能够发布高达2GB的容量可以轻松实现DOS攻击。即使您将应用程序的可用性限制在本地Intranet上的企业用户,但心怀不满的员工也不会让您感到头疼。

当然你可以在64位平台上放入大量的RAM,但我想这取决于你想花多少钱。

答案 2 :(得分:0)

这更像是一个安全问题,让我们想象一群黑客决定攻击你的网站并开始从许多机器上传1.99千兆的文件。

服务器的磁盘会立即填写,服务器会慢慢变得无法使用。

对于 Nathan 提到的内存问题,我认为这是一个神话,PHP确实在内存中存储了一些,但同时也将它丢弃在磁盘上,因此内存量应该非常好。

您可能希望为您的用户提供某种FTP访问权限,因此在您的应用程序中,他们可以浏览该ftp目录并导入所选文件。如果连接断开,FTP允许附加和简单恢复。

另外必须注意的是,在浏览器上上传2 gb文件的用户体验真的很糟糕,比如你的浏览器会在几分钟内冻结,你不知道它是否会阻碍进度,所以使用一些Flash / Applet基于解决方案或FTP,用户有一些反馈是真的更好。