我目前正在制作一个支持更大的上传的脚本(~50 Mb),我很快就遇到了一个问题!我使用传统的POST请求和表单将文件上传到临时位置,然后用PHP移动它。当然,我已经更新了我的php.ini文件,以支持比默认文件稍大的文件和大约15 Mb的文件上传。
主要的问题是由于我的托管公司。它们允许脚本在60秒后超时,这意味着超过60秒的POST请求将在临时文件到达PHP脚本之前死亡,这自然会产生内部服务器错误。
无法在服务器上启动超时(经过激烈的辩论),我正在考虑选择。是否有一种方法可以碰撞请求或以某种方式刷新它以通知服务器并重置时间?或者有没有其他不会超时的上传方法?
您可以考虑以下几点:每一种都有成本,你需要确定哪一种成本最低。
-
找一家新的托管公司。
-
设计一个相当复杂的客户端系统,将上传分成多个块,并通过AJAX提交。
我真的要研究一下#1。
困难重重。到目前为止,您最简单的选择是抛弃顽固的主机,选择一个真正让您高效的主机。我个人使用TSOHost,已经使用了一年半,到目前为止还没有任何抱怨的理由(甚至没有一点烦恼)。
您确定这是超时问题吗?我的第一个想法是…
-
由于web服务器php.ini文件中设置的配置限制导致传输失败。您需要更改它或将其设置为脚本中的本地设置
#在php.ini中找到它memory_limit = 96Mpost_max_size = 64Mupload_max_filesize = 64M
或者直接在脚本
中ini_set('memory_limit', '96M');
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');