【问题标题】:How to avoid post_max_size如何避免 post_max_size
【发布时间】:2014-10-15 21:34:01
【问题描述】:

我有问题。我正在创建自己的 PHP 应用程序,并且希望允许用户上传文件。

我的 PHP

function make_upload() {
 echo "<pre>";
 print_r($_FILES);
 echo "</pre>";
}

if (isset($_GET["upload"]) && $_GET["upload"] == "1") {
 make_upload();
}

我的 HTML

<form action="?upload=1" method="post" enctype="multipart/form-data">
 <input name="file[]" type="file" multiple/>
 <input type="submit" value="Upload"/>
</form>

当我尝试浏览并选择许多文件时,print_r($_FILES); 显示空白 Array ( ) 而不是包含我的文件的数组。这是因为post_max_size 设置为8M。如果我更改我的post_max_size,那么我可以选择更多图像。

我想分享我的应用程序以安装在网站上,但我不想告诉用户增加他们的post_max_size

有什么办法可以避免post_max_size? (我看到在 wordpress 中我可以选择post_max_size 以上的图像 - 是如何制作的?)

【问题讨论】:

    标签: php wordpress file-upload upload image-uploading


    【解决方案1】:

    您可以通过 .htaccess 文件进行操作。

    php_value upload_max_filesize 200M
    

    但有时托管服务提供商不允许您覆盖它。在这种情况下你会得到 500 Internal Server Error

    【讨论】:

    • 谢谢,但我希望它能够 100% 工作,因为 WordPress 上传适用于任何配置。
    【解决方案2】:

    你需要在你的 php.ini 中设置 upload_max_filesize 和 post_max_size 的值:

    上传文件的最大允许大小。

    upload_max_filesize = 40M;
    

    必须大于或等于upload_max_filesize

    post_max_size = 40M;
    

    修改 php.ini 文件后,您需要重新启动 HTTP 服务器以使用新配置。

    如果您无法更改您的 php.ini,那么您就不走运了。您不能在运行时更改这些值;在执行到达您对 ini_set 的调用时,上传大于 php.ini 中指定值的文件将失败。

    请参阅Description of core php.ini 指令。

    【讨论】:

    • 我的帖子说:如何避免设置post_max_size
    • @MMPP 我收到了您的帖子,但您无法使用大于限制的 php 上传文件,避免其设置。如果你发现了什么,也请告诉我。
    【解决方案3】:

    当你调用时,你还没有将数组传递给函数

    if (isset($_GET["upload"]) && $_GET["upload"] == "1") {
     make_upload($_FILES); // pass this $_FILES array to function
    }
    

    AND 函数应该是这样的

    function make_upload($_FILES) {
     echo "<pre>";
     print_r($_FILES); // will print array
     echo "</pre>";
    }
    

    【讨论】:

    • 我的代码按预期工作。我想避免设置post_max_size
    猜你喜欢
    • 2010-12-07
    • 2013-02-12
    • 1970-01-01
    • 2011-05-15
    • 2014-05-30
    • 2022-01-26
    • 2013-07-16
    • 2013-03-03
    • 2012-05-26
    相关资源
    最近更新 更多