在PHP设置中,应该是memory_limit> upload_max_filesize的?

时间:2010-09-06 11:41:09

标签: php

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

但是,我是否还要将memory_limit更改为64MB或更大?

memory_limit是否与upload_max_filesize相关联?

2 个答案:

答案 0 :(得分:14)

不,没有必要。

PHP具有不同的POST阅读器和处理程序,具体取决于请求的内容类型。对于“multipart / form-data”(用于发送文件的内容),rfc1867_post_handler充当混合阅读器/处理程序。它会填充$_POST$_FILES$_POST计入内存限制的内容,$_FILES中的内容也很重要。

但是,$_FILES只包含有关文件的元数据,而不是文件本身。这些只是写入磁盘,因此不计入内存限制。

答案 1 :(得分:6)

post_max_size必须大于upload_max_filesize。如果表单包含更多文件上传,则post_max_size必须大于它们的总和。

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