【问题标题】:PHP post_max_size vs upload_max_filesize, what is the difference?PHP post_max_size vs upload_max_filesize,有什么区别?
【发布时间】:2014-05-15 18:55:45
【问题描述】:

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

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

查看 cmets,似乎其中一个用于上传文件,而另一个与 POST 数据直接相关。我对这种情况感到困惑:如果您有一个表单是POST'ing 图像到另一个页面,那算什么,upload_max_filesizepost_max_size?它属于两者吗?一个优先吗?有没有一种情况会使用另一种?

编辑:

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

upload_max_filesize = 20M
post_max_size = 60M

【问题讨论】:

    标签: php


    【解决方案1】:

    你是对的。 post_max_size 是所有 POST 正文数据的最大大小。无论您是在发布 JSON 还是您的 DVD 收藏,这都是 POST 正文数据。您的文件上传计入此限制。您还应该注意,如果您要上传多个文件,则文件总大小必须在此限制范围内。

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

    简而言之,如果要上传大文件,则必须同时提高两个限制。

    【讨论】:

    • 您的网络服务器也可能有限制。 Apache 有 LimitRequestBody 指令,可以设置。如果它存在,它必须等于或大于post_max_size
    • 所以据我了解,如果我有一个包含 3 次上传且大小为 20mb 的表单,可以使用 upload_max_filesize = 20M 但必须将 post_max_size 设置为 60M
    • @Brad 但是带有文件的帖子比文件本身大(由于 mime 分隔符、其他参数等),所以 3 个文件,每个 20 MB,上传时它们的总大小 = 60MB +“来自其他参数的一些额外数据,mime 编码”...对吗?
    • @Alex 正确。我应该在我的评论中澄清......我试图保持简单。实际上,几乎没有人会上传 3 个大小正好为 20MB 的文件,所以这不是问题。当然,除非你有一个他们做的地方。
    【解决方案2】:

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

    【讨论】:

    • 来自post_max_size 的文档:"Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize."
    • @Sam 我认为 Neo 试图引起注意的是 post_max_size 大小必须包含所有文件,但应该更大(大于所有上传文件的总和),因为它可以包含更多(参数, MIME 分隔符等)
    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2013-06-29
    • 2016-03-24
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    相关资源
    最近更新 更多