需要解决方法需要大量PHP ini内存限制的AJAX上传器,超过时出现seg故障!

时间:2011-07-07 19:47:18

标签: php ajax memory-management

我们最近用这个ajax替换了基于闪存的上传器:

http://valums.com/ajax-upload/

不幸的是,这使用POST机制将数据传输到服务器,这意味着如果我有50MB的上传限制,我需要为我的PHP ini添加至少50MB,因为数据被添加到$ _POST数组中

不幸的是,这意味着所有页面现在都有这个巨大的附加限制,这是不可接受的。我甚至无法动态设置页面的限制,因为在$ _POST处理发生后使用ini_set会发生。谁能想到替代解决方案?

此外,超出最大限制的任何内容都会导致PHP seg错误/致命错误!有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在.conf文件中的Apache中为您的站点配置执行类似的操作:

<Location /upload.php>
   php_value memory_limit 60M
</Location>

这使得更高的内存限制仅适用于URL中调用的/upload.php脚本。您可以使用<Files><FilesMatch><Directory>等进行类似的覆盖...

覆盖必须在此级别完成,因为正如您所知,在执行ini_set时,脚本已经被杀死。

答案 1 :(得分:0)

内存限制不会预先分配50Mb,这是它可以使用多少的硬限制。 如果之前没有脚本失败,则很可能您不会注意到内存限制增加。