PHP post_max_size vs upload_max_filesize,有什么区别?

时间:2014-05-15 18:55:46

标签: php

当尝试通过为此创建的管理区域上传15mb的PDF文件时,没有任何反应。没有成功或错误消息,但PDF没有上传。

然后我认为这可能是php.ini设置的问题。果然,当我查看文件时,我发现限制设置为8米。我假设的意思是8mb。

post_max_size: http://php.net/post-max-size

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
post_max_size = 20M

upload_max_filesize: http://php.net/upload-max-filesize

; Maximum allowed size for uploaded files.
upload_max_filesize = 20M

查看评论时,似乎有一个用于上传文件,而另一个用于直接与POST数据相关。我感到困惑的是这种情况:如果您的表单POST将图片发送到另一个页面,那么这个表单会被计为upload_max_filesize或{{1 }}?它属于两者吗?一个优先吗?是否存在使用一种而不是另一种的情况?

修改

因此,如果我有一个包含3个文件输入的表单,所有允许20mb或更小的文件,则必须设置如下设置:

post_max_size

2 个答案:

答案 0 :(得分:26)

你是对的。 post_max_size是所有POST正文数据的最大大小。如果您正在发布JSON或DVD集合并不重要,这就是所有POST正文数据。您的文件上传计入此限制。您还应该知道,如果您要上传多个文件,则文件总大小必须符合此限制。

upload_max_filesize是仅适用于POST的文件的最大大小。其他类型的POST正文数据不受此限制。

简而言之,如果您要上传大文件,则必须增加两个限制。

答案 1 :(得分:4)

post_max_size就像超集一样。 upload_max_filesize位于文件上传的上下文中,但检查了post_max_size是否存在所有类型的POST数据。它可以是一个非常大的内容,可以发布受post_max_size限制。因此,对于要上传的大文件,您需要更改这两个限制。