无法使用AJAXfile upload器上传5mb文件

我正在使用file upload插件(从: https : //github.com/valums/file-uploader )上传文件到我的网站。

如果您使用的是模式浏览器(例如Firefox 6或Chrome 13),则可以通过在POST主体中stream式传输文件进行上传,并且可以为您提供进度条。 如果您使用IE浏览器(或旧浏览器),它会回落到标准的$ _FILES(使用隐藏的iFrame)。

一切工作正常,但突然间我不能上传5MB文件在Chrome或Firefox。 当我在Chome或Firefox上传一个5MB的文件时,我得到一个500错误,我的PHP代码甚至从未运行过。 如果我使用Internet Explorer(使用$ _FILES),它工作正常。

这必须是一个configuration问题,因为我的PHP代码从来没有运行。 所以,我检查了我的设置。

/etc/php.ini中

upload_max_filesize = 15M post_max_size = 16M 

我寻找LimitRequestBody ,但是这是无处可寻(和默认是无限的)。

设置看起来正确。 我debugging了一段时间,我无法弄清楚什么是错的。

有没有我失踪的设置? 如果有问题的话,服务器已经安装了suhosin。

我知道我的PHP代码的作品,因为小于4MB的file upload罚款(在所有的浏览器)。 我只有大于5MB的文件(使用Chrome / Firefox)出现问题。 奇怪的是,这在我的testing服务器上正常工作,但不是我的生产服务器。 他们可能有不同的设置(suhosin正在生产,但没有testing)。

我认为问题在这里 ,特别是在stream_copy_to_stream() ,似乎是一个内存猪,因为(我只假设)它复制整个(?)file upload到内存。 所以在php.ini中检查suhosin.memory_limit和memory_limit

PS我不知道这里的礼仪是否应该作为回答或者评论,但是我会把它当作是时间的答案。