php.ini upload_max_filesize结合了吗?

时间:2014-10-14 22:34:56

标签: php

我想知道upload_max_filesize是针对一个文件还是针对多个文件。

例如,如果属性设置为upload_max_filesize:5M可以上传三个单个文件,每个文件的权重为2 MB(总共6MB)?或者不起作用,因为upload_max_filesize设置为5MB

我一直在对此进行一些测试,但我想知道社区的建议。

提前致谢!

2 个答案:

答案 0 :(得分:2)

使用post_max_size为每个文件设置总数和upload_max_filesize

检查:http://php.net/manual/en/ini.core.php

  • upload_max_filesize integer - 上传文件的最大大小。使用整数时,该值以字节为单位。也可以使用本常见问题解答中描述的速记符号。
  • post_max_size integer - 设置允许的发布数据的最大大小。此设置也会影响文件上载。要上传大文件,此值必须大于upload_max_filesize。一般来说,memory_limit应该大于post_max_size。使用整数时,该值以字节为单位。也可以使用本FAQ中描述的速记符号。如果发布数据的大小大于post_max_size,则$ _POST和$ _FILES超全局变量为空。这可以以各种方式跟踪,例如,通过将$ _GET变量传递给处理数据的脚本,即检查是否设置了$ _GET ['processed']。

答案 1 :(得分:0)

我可以确认 upload_max_filesize是每个文件的最大大小

例如使用upload_max_filesize=2M,您可以上传1.5M的3个文件。

我刚刚通过测试确认了这一点。


您应该注意的限制:

  • upload_max_filesize(默认2M):最大大小每个文件
  • max_file_uploads(默认20):每个请求
  • post_max_size(默认8M):最大原始 POST数据大小每个请求
    post_max_size必须大于以下大小的总和:
    • 所有上传的文件
    • 其他POST字段中的所有数据
    • 一些额外的KB来解决multipart/form-data开销(报头/边界),这些开销包装了有效负载中的每个文件和每个POST字段。

请务必小心这些限制,因为如果超出其中之一,PHP 不会出错;相反,您最终会遇到$_POST$_FILES部分或为空的情况,并且可能很难调试问题。

例如,max_file_uploads将默默忽略第n 个上传文件之后的任何文件,并且您最终将得到一个被截断的文件列表,而不会发出任何警告