我正在尝试允许用户上传大文件(64MB)并计划将upload_max_filesize
更改为64MB。
但是,我是否还要将memory_limit
更改为64MB或更大?
memory_limit
是否与upload_max_filesize
相关联?
答案 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>