我有幻灯片显示的图片上传,用户不断上传2MB以上的文件。此大小的文件工作正常,但超过该大小的文件会导致浏览器超时。
以下是我的php ini设置:
这些设置在配置文件中,我可以直接更改它们。使用phpinfo()时会出现更改。
我正在运行apache服务器和php 4.3.9(客户端的选择,而不是我的)。 apache服务器的请求限制设置为默认值,我认为这大约是2GB左右?
当我使用firebug网络监视器时,看起来我没有收到服务器的完整响应,尽管我对使用此工具的经验不足。事情似乎在43秒左右超时。
我在网上找到的所有帮助都指向上述设置作为罪魁祸首,但所有这些设置都远高于此2MB文件和43秒超时。
我可以从这里找到解决此问题的任何建议吗?
以下是来自phpinfo()的相关php ini设置。如果我需要再发帖,请告诉我。
答案 0 :(得分:2)
确保您在php.ini中激活了错误报告: display_errors = On ;这可能会让你知道发生了什么。生产服务器通常(应该)禁用错误报告。
我最近遇到了类似的问题,并且增加memory_limit设置对我有用。如果您将文件 content 读入变量,每个变量将占用与文件大小相同的内存,从而增加了脚本内存要求。
答案 1 :(得分:0)
这些设置在哪里?如果您正在使用.htaccess
,那么您的Apache配置可能不允许您覆盖这些设置。
如果确实正在应用这些设置,我建议使用phpinfo()调用进行检查:
<?php
phpinfo();
?>
答案 2 :(得分:0)
如果它是共享主机,您的主机可能已设置限制以覆盖您的主机。
否则,请尝试将POST限制高于文件上载大小。 AFAIK,上传已发布。
答案 3 :(得分:0)
如果问题是由于主机覆盖超时,您可以查找仍使用Apache 1的主机:在Apache 1中,本地.htaccess会覆盖全局设置,即使超时也是如此。
否则,有几十个Java applett上传器只需几美元(谷歌它)。他们拆分文件,上传部件并将部件透明地放回原处。
这是一个有保证的超时修复方法,还有一个额外的好处,就是让用户暂停和恢复上传,查看进度等等。
(基于Flash的上传者没有这个优势。)