php文件上传大小问题

时间:2010-09-04 15:31:16

标签: php file upload filesize

我知道您可以使用$_FILES['userfile']['size'] > XXX

控制PHP上传的大小

我认为我的问题与表现有关。

当您上传文件时,我的理解是将整个文件上传到临时位置,然后您就可以访问$_FILES

如果用户尝试上传10gb文件会怎样? (作为一个非常大的文件的例子)

如果尝试上传大文件,这会浪费服务器带宽,因为文件需要上传才能处理/验证。

我知道PHP有类似的超时等但我很好奇,如果用户尝试上传非常大的文件会对性能产生影响,即使(例如)最大文件大小为2mb。

这是一个令人担忧的事情或不可避免的事情,只是不用担心。

感谢。

2 个答案:

答案 0 :(得分:3)

apache和php都有max-post限制来防止这种行为。

来自php.ini

; Maximum allowed size for uploaded files.
upload_max_filesize = 4M
; Maximum size of POST data that PHP will accept.
post_max_size = 8M

答案 1 :(得分:0)

实际上,[size]不适用于控制,它只是上传文件的大小。当您的脚本被激活以检查时,PHP(和Web服务器)已经处理了上传并应用了他们自己的内部限制(Apache的LimitRequestBody,PHP的upload_max_size等...)。

如果已通过file_uploads INI设置启用了PHP,则允许所有上传继续进行。由于您无法真正信任客户端,因此将忽略客户端提供的大小,并且上载将继续,直到它完成或达到上载限制。所以,是的,它会浪费你的带宽。

如果您允许上传,则可能会被滥用。但是,上传10gig文件的人或者使用10gig伪造数据进行POST的人之间没有真正的区别。无论哪种方式,你都可以获得10g的数据。