Sim*_*mon 43 php upload filesize
在我的网站主机中,我看到(通过phpinfo)
这让我觉得我应该可以上传大到16Mb的文件.但是,当我通过post方法(正常)执行此操作时,post_max_size接管并声明我发送了太多.
允许发送大到16Mb的文件的方法是什么?GET - PUT - 其他?
希望有人能为我澄清一下.
西蒙
Mat*_*hew 82
upload_max_filesize
是任何单个文件的限制.
post_max_size
是请求的整个主体的限制,可能包括多个文件.
鉴于post_max_size = 20M
并且upload_max_filesize = 6M
您可以上传最多3个文件,每个文件6M.如果相反post_max_size = 6M
,upload_max_filesize = 20M
那么在点击post_max_size之前你只能上传一个6M文件.拥有upload_max_size
> 没有帮助post_max_size
.
如何认识到过去并不明显post_max_size
.$_POST
并且$_FILES
将为空,但$_SERVER['CONTENT_LENGTH']
将> 0.如果客户端只是没有上传任何后期变量或文件,那么$_SERVER['CONTENT_LENGTH']
将为0.
hak*_*kre 19
通过POST文件上传完成(通常还有其他方法).查看包含文件上传字段的表单的method属性;)
任何相关设置的最低限制都会取代更高的设置:
请参阅处理文件上传:公共Pitfals详细解释了这一点以及如何计算值.
sti*_*vlo 12
发送文件上传的常规方法是POST,因此也post_max_size
应该是16 Mb或更多.
顺便说一句,也memory_limit
起到了作用.它应该大于16Mb,但由于默认值为128Mb,您将看不到此问题.php.ini
配置示例:
post_max_size = 16M
upload_max_filesize = 16M
memory_limit = 128M
Run Code Online (Sandbox Code Playgroud)
php.ini
如果您可以访问它,请更改这些值,否则您可以尝试在.htaccess
文件中更改它们.
php_value upload_max_filesize 16M
php_value post_max_size 16M
Run Code Online (Sandbox Code Playgroud)
这仅在AllowOverride
设置允许时才有效.否则,你要问你的托管公司.
默认情况下,post_max_size应该是upload_max_filesize的4倍.
反过来,memory_limit应该比post_max_size大16倍
您的服务器配置设置允许用户上传最大16MB的文件(因为您设置了upload_max_filesize = 16Mb),但post_max_size仅接受高达8MB的发布数据.这就是它抛出错误的原因.
引用官方PHP网站:
要上传大文件,post_max_size值必须大于upload_max_filesize.
memory_limit应大于post_max_size
您应始终将post_max_size值设置为大于upload_max_filesize值.