内存限制,500错误,巨大的上传问题

时间:2012-07-31 15:21:41

标签: php file-upload ini

阅读一些答案,从未找到与我的问题直接相关的内容。

我有一个48兆字节的.csv文件我试图上传和运行,以便客户端可以进行大量的产品更新/插入。我们偶尔可以上传工作,但是现在我的Ajax请求返回了500错误。以下是一些细节:

我们的服务器支持将最大上传文件大小设置为100兆字节。

我在脚本顶部使用以下ini_sets:

set_time_limit(0);
ini_set("memory_limit",-1);
ini_set('max_execution_time', 0);

这就是我认为问题所在。由于我需要做大量的测试才能使这个脚本工作;我可能每天做大约10次上传。这真的是在强调服务器,以及他们的网站目前每天接收大约500次访问的事实。

每月带宽转移:12775.43 / 3000 MB

关于这个问题,我可以回复我的老板吗?它有点需要在今天完成,我仍在努力清理问题,但如果它是一个带宽的东西,那么我们不能再做测试,直到明天服务器重置它的每月带宽。

感谢任何想法。

注意:这在过去有效。如果我做的文件较小,它的工作原理也一样,但客户明确要求我们使用这个48兆字节的.csv文件。

再次注意:上传工具似乎在某种程度上起作用,因为它会发布并上传到我想要发布到的文件夹。我认为问题是,在上传和准备文件10分钟后,解析所有数据并超时都不会很长。

另一组备注:以下是500内部服务器问题:

服务器遇到内部错误或配置错误,无法完成您的请求。 请与服务器管理员,网站管理员@ _ __ _ .com联系,并告知他们错误发生的时间以及可能导致错误的任何操作。 服务器错误日志中可能提供了有关此错误的更多信息。 此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。

1 个答案:

答案 0 :(得分:1)

也许这有任何帮助。

https://github.com/valums/file-uploader/issues/61

  

我已经测试过上传大文件(带有64MB php内存设置的20MB +文件),并且获得了一致的内存错误来自PHP,因为它正在将上传的XHR内容加载到$ HTTP_RAW_POST_DATA中。   尽管将always_populate_raw_post_data设置为false,但仍然这样做,并且由于文档在这个问题上有点稀疏,我无法解决它。事实证明,如果你把内容类型假为“multipart / form-data”,那么PHP就不会填充$ HTTP_RAW_POST_DATA(我尝试了其他内容类型,这是唯一一个似乎有用的内容类型),并且你可以上传大文件而无需点击内存限制很低。二进制完整性是保留的,至少在Chrome和Firefox中是这样,我试过。*

我在这里找到了它:

Reduce memory consumption in PHP while handling uploads by php input