1

我正在尝试上传 16 MB 的文件,但我的应用程序没有上传这个 17 MB 的文件,根据我的 PHP.INI,我可以上传到 20 MB。

同样,我没有收到任何上传失败的相应错误。

当我点击上传按钮时,页面加载,但什么也没发生。

没有错误,什么都没有。

在应用程序顶部,我添加

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

如何捕获这种错误类型的错误。

4

1 回答 1

1

除了您已经设置的 PHP ini 最大文件大小之外,您还应该检查更多相关变量:

upload_max_filesize = 24M
post_max_size = 120M
max_execution_time = 6000

post_max_size 是您的浏览器发送的帖子的总大小:因此它是附加到表单的所有文件的总和。最大执行时间还应考虑文件大小,因为大多数 ADSL 连接上传速度较慢,某些用户上传 15mb 文件可能需要 5 分钟。

不要夸大其词:这会使您受到攻击/浪费您的带宽(那里没有太大的损害)。

根据错误,您应该将它们记录在 Apache 错误日志中:如果文件大小的总和超过 post_max_size,则错误将如下所示:

[Fri Jul 05 17:38:09 2013] [warn] [client 157.16.35.224] mod_fcgid: HTTP request length 5005313 (so far) exceeds MaxRequestLen (5000000), referer: https://www.example.com/sef/path/rads/post/1?catid=1

最后,确保磁盘空间和用户配额没有用完。您将能够从 apache error_log 确定上传失败的原因。

于 2013-09-04T07:40:39.783 回答