我正在尝试制作文件上传脚本,我一直在为这个问题而苦苦挣扎。
我已经阅读并尝试了与此相关的所有SO答案,但无济于事。
这是我在 php.ini 中尝试的内容:
file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 100M
在阿帕奇中,我有:
<Directory /var/www/uploads>
php_value upload_max_filesize 10G
php_value post_max_size 10G
</Directory>
我可能尝试了其他现在没有想到的东西。
我还想提一下,8MB以下的所有内容都可以毫无问题地上传。超时也不是问题,因为上传在几秒钟内失败。
附言我正在使用Cloudflare。会不会是这阻止了我的上传?
通过创建一个包含 phpinfo() 的 test.php 文件来确认你的 PHP.ini 位置。
接下来,检查您的 Apache (LimitRequestBody 指令*) 和 php.ini (upload_max_filesize) 限制,因此通常这些限制设置得更高。值以字节为单位。
Apache 2.0 的默认上传大小为 524288,位于 php "include file"/etc/httpd/conf.d/php.conf 中,要覆盖此值,请将以下指令放在 httpd.conf 虚拟主机指令中:
<Files *.php>
LimitRequestBody 30000000
</Files>
(此示例将请求正文限制为 30M)
Apache 1.3 没有这个默认值,所以你通常只需要更改 php.ini (upload_max_filesize,post_max_size) 值和 config.ini (maxuploadfilesize) 值。
最后,检查请求读取超时设置。更多内容 https://serverfault.com/a/260389
有时会出现执行时间问题,使用 set_time_limit(0);
或
检查 php.iniini_set('max_execution_time', 0);0