PHP post_max_size 与 upload_max_filesize,有什么区别?

php
2022-08-30 12:56:19

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

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

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

查看注释,似乎一个用于正在上传的文件,而另一个则与数据直接相关。我感到困惑的是这种情况:如果你有一个表单,将图像“到另一个页面”,那算作什么,或者?它是否同时属于两者?一个优先吗?是否存在使用一个而不使用另一个的情况?POSTPOSTupload_max_filesizepost_max_size

编辑:

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

upload_max_filesize = 20M
post_max_size = 60M

答案 1

你是对的。 是所有 POST 正文数据的最大大小。无论您是POSTING JSON还是DVD收藏都没关系,这都是POST正文数据。您的文件上传将计入此限制。您还应该知道,如果要上传多个文件,则总文件大小必须符合此限制。post_max_size

upload_max_filesize是仅对于已 POSTTED 文件的最大大小。其他类型的 POST 正文数据不受此限制的约束。

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


答案 2

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


推荐