PHP post_max_size与upload_max_filesize有什么区别?

PHP post_max_size与upload_max_filesize有什么区别?,php,Php,当试图通过为此创建的管理区域上载一个15mb的PDF文件时,什么也没有发生。没有成功或错误消息,但未上载PDF 然后我认为这可能是php.ini设置的问题。果然,当我查看该文件时,我发现限制设置为8m。我想这意味着8mb 贴子最大尺寸: 上传最大文件大小: 从评论中可以看出,其中一条是针对正在上载的文件的,而另一条则与POST数据直接相关。我所困惑的是这种情况:如果你有一个表单是将一个图像发布到另一个页面上,那么这算什么,上传最大文件大小或者发布最大文件大小?这两者都属于吗?一个优先吗?是否存在

当试图通过为此创建的管理区域上载一个15mb的
PDF
文件时,什么也没有发生。没有成功或错误消息,但未上载
PDF

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

贴子最大尺寸:

上传最大文件大小:

从评论中可以看出,其中一条是针对正在上载的文件的,而另一条则与
POST
数据直接相关。我所困惑的是这种情况:如果你有一个表单是
将一个图像发布到另一个页面上,那么这算什么,
上传最大文件大小
或者
发布最大文件大小
?这两者都属于吗?一个优先吗?是否存在使用其中一个而不使用另一个的情况

编辑:

因此,如果我有一个表单,它有3个文件输入,所有文件都允许20mb或更小,那么设置必须如下所示:

upload_max_filesize = 20M
post_max_size = 60M

post_max_大小类似于超集。upload_max_filesize在文件上载的上下文中,但是post_max_size会检查所有类型的post数据。这可能是一个非常大的内容,可以张贴,这是由张贴的大小限制。因此,对于要上载的大文件,您需要更改这两个限制。

post\u max\u大小就像超集一样。upload_max_filesize在文件上载的上下文中,但是post_max_size会检查所有类型的post数据。这可能是一个非常大的内容,可以张贴,这是由张贴的大小限制。因此,对于要上载的大文件,您需要更改这两个限制。

您是正确的
post_max_size
是所有post正文数据的最大大小。不管你是发布JSON还是DVD集,这都是帖子正文数据。您的文件上载将计入此限制。您还应该注意,如果要上载多个文件,则总文件大小必须符合此限制

upload\u max\u filesize
是仅用于已发布文件的最大大小。其他类型的正文后数据不受此限制


简而言之,如果你想上传大文件,你必须提高这两个限制。

你是对的
post_max_size
是所有post正文数据的最大大小。不管你是发布JSON还是DVD集,这都是帖子正文数据。您的文件上载将计入此限制。您还应该注意,如果要上载多个文件,则总文件大小必须符合此限制

upload\u max\u filesize
是仅用于已发布文件的最大大小。其他类型的正文后数据不受此限制


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

来自
post\u max\u size
的文档:
设置允许的post数据的最大大小。此设置还影响文件上载。若要上载大文件,此值必须大于upload\u max\u filesize
@Sam我认为Neo试图引起注意的是,post\u max\u size必须包含所有文件,但应该大于(所有上传文件的总和),因为它可以包含来自
post\u max\u size
文档的更多内容(参数、MIME分隔符等):
“设置允许的post数据的最大大小。此设置还影响文件上载。要上载大文件,此值必须大于上载最大文件大小。“
@Sam我想Neo试图引起注意的是,post最大文件大小必须包含所有文件,但应大于(大于所有上载文件的总和),因为它可以包含更多的文件(参数、MIME分隔符等)您的Web服务器可能也有一个限制。Apache有一个指令,可以设置它。如果它存在,它必须等于或大于
post_max_size
,因此根据我的理解,如果我有一个表单,它有3次上传,上限为20mb,那么让
upload_max_filesize=20M
就可以了,但是
post_max_size
会有要设置为
60M
?@Brad,但带有文件的帖子比文件本身大(由于mime分隔符、其他参数等),因此每个20 MB的3个文件在上载时的总大小将为60MB+“一些来自其他参数的附加数据,mime编码“…对吗?”亚历克斯说得对。我应该在我的评论中澄清。。。我试着保持简单。实际上,几乎没有人会上传3个大小正好为20MB的文件,所以这不是问题。当然,除非你有一个地方,他们就是这样做的。你的Web服务器也可能有一个限制。Apache具有可以设置的指令。如果它的当前大小必须等于或大于
post\u max\u size
,那么根据我的理解,如果我有一个表单有3次上传,上限为20mb,那么让
upload\u max\u filesize=20M
就可以了,但是
post\u max\u size
必须设置为
60M
?@Brad但是一个带有文件的帖子比文件大本身(由于mime分隔符、其他参数等),因此每个20 MB的3个文件在上载时的总大小为60MB+“一些来自其他参数的附加数据,mime编码”…对吗?@Alex正确。我应该在我的评论中澄清。。。我试着保持简单。实际上,几乎没有人会上传3个大小正好为20MB的文件,所以这不是问题。当然,除非你有一个地方他们就是这么做的。
; Maximum allowed size for uploaded files.
upload_max_filesize = 20M
upload_max_filesize = 20M
post_max_size = 60M