在PHP设置中,memory_limit应该大于upload_max_filesize吗?

16

我尝试允许用户上传大文件(64MB),计划将 upload_max_filesize 更改为 64MB。

不过,我是否也应该将 memory_limit 更改为 64MB 或更大?

memory_limit 是否与 upload_max_filesize 有关联?


注: - upload_max_filesize: 可上传文件的最大尺寸。 - memory_limit: PHP 脚本能够使用的最大内存量。
2个回答

17
不需要。
PHP根据请求的内容类型具有不同的POST读取器和处理程序。在“multipart/form-data”(用于发送文件的)情况下,rfc1867_post_handler 充当混合读取器/处理程序。它填充了 $_POST$_FILES。放入$_POST 中的内容计入内存限制,放入$_FILES中的内容也算。
但是,$_FILES 仅具有文件的元数据,而不是文件本身。这些只是写入磁盘,因此不计入内存限制。

11

post_max_size 必须比 upload_max_filesize 大。如果一个表单包含多个文件上传,那么 post_max_size 必须大于它们的总和。

memory_limit 在文件上传中没有任何重要作用,因为上传的文件存储在 /tmp 目录(Linux)中,而不是存储在内存中。如果您想要提交带有表单字段(而非文件上传)的大量数据,则需要一个大的 memory_limit,否则就不需要。


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