【问题标题】:post_max_size and upload_max_filesize on a case by case basispost_max_size 和 upload_max_filesize 视情况而定
【发布时间】:2010-11-22 20:59:31
【问题描述】:

使用 PHP 上传器并想知道是否有办法在特定脚本中覆盖 php.ini 中 post_max_size 和 upload_max_filesize 的默认值?

不想在 php.ini 中普遍更改它,因为虽然可以在我们的管理部分对上传器设置很大的限制,但我们不希望在公共部分设置那么大的限制。

【问题讨论】:

    标签: php uploader


    【解决方案1】:

    您应该可以通过 .htaccess 文件执行此操作。假设您希望管理区域允许 10Mb 上传,公共端允许 2 次上传。我将默认值(在 php.ini 中)设置为 2 Mb,然后在管理区域中,添加到 htaccess 文件:

    php_flag upload_max_filesize 10M
    

    编辑
    这是为了在目录级别上工作 - 我假设你的管理页面都是从 mydomain.com/admin/ 运行的,在你的 webroot 中有一个物理 /admin 文件夹(你放置 .htaccess 文件的位置)

    【讨论】:

      【解决方案2】:

      除非您每次访问都写入 .htaccess 文件,否则无法按用户更改此值。

      为什么不简单地允许上传并在它太大时丢弃它?

      我确实找到了this,但我不相信它,因为 HTML 不知道你在用那个输入做什么。

      编辑:基本上,由于 Apache 负责处理文件的实际物理传输,因此您需要 Apache 在用户提交表单之前了解任何限制。由于 HTML 与此无关,您不能在此处设置它,而且 PHP 仅在文件实际位于服务器上时才有用,您需要在上传后检查它。抱歉,我意识到我的第一个答案有点含糊。希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        尝试使用phpini_set函数

        您应该可以通过这种方式覆盖 php.ini 文件中的默认值。只需确保在任何页面输出之前调用它即可。

        【讨论】:

        • 其实,由于上传的文件是在到达php代码之前被接收和解析的,所以这里ini_set帮不了你。
        猜你喜欢
        • 2011-12-06
        • 2013-06-29
        • 1970-01-01
        • 2016-03-24
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        • 2015-05-13
        • 2012-10-27
        相关资源
        最近更新 更多