使用 PHP 上传器,想知道是否有办法在特定脚本中覆盖 php.ini 中 post_max_size 和 upload_max_filesize 的默认值?
不想在 php.ini 中普遍更改它,因为虽然可以在我们的管理部分对上传器设置很大的限制,但我们不希望在公共部分有那么大的限制。
您应该可以通过 .htaccess 文件执行此操作。假设您希望管理区域允许 10Mb 上传,公共端允许 2 次上传。我将默认值(在 php.ini 中)设置为 2 Mb,然后在管理区域中,添加到 htaccess 文件:
php_flag upload_max_filesize 10M
编辑
这旨在在目录级别上工作-我假设您的管理页面都是从 mydomain.com/admin/ 运行的,并且您的 webroot 中有一个物理 /admin 文件夹(放置 .htaccess 文件的位置)
除非您每次访问都写入 .htaccess 文件,否则无法更改每个用户的此值。
如果它太大,你为什么不简单地允许上传并丢弃它?
我确实找到了这个,但我不相信它,因为 HTML 不知道你在用那个输入做什么。
编辑:基本上,由于 Apache 处理文件的实际物理传输,因此您需要 Apache 在用户提交表单之前了解任何限制。由于 HTML 与此无关,您不能在此处设置它,而且 PHP 仅在文件实际位于服务器上时才有用,您需要在上传后检查它。抱歉,我意识到我的第一个答案有点含糊。希望这会有所帮助。
尝试使用 php ini_set函数
您应该能够以这种方式覆盖 php.ini 文件中的默认值。只要确保在任何页面输出之前调用它。