我们最近用这个ajax替换了基于闪存的上传器:
http://valums.com/ajax-upload/
不幸的是,这使用POST机制将数据传输到服务器,这意味着如果我有50MB的上传限制,我需要为我的PHP ini添加至少50MB,因为数据被添加到$ _POST数组中
不幸的是,这意味着所有页面现在都有这个巨大的附加限制,这是不可接受的。我甚至无法动态设置页面的限制,因为在$ _POST处理发生后使用ini_set会发生。谁能想到替代解决方案?
此外,超出最大限制的任何内容都会导致PHP seg错误/致命错误!有什么想法吗?
答案 0 :(得分:1)
您可以在.conf文件中的Apache中为您的站点配置执行类似的操作:
<Location /upload.php>
php_value memory_limit 60M
</Location>
这使得更高的内存限制仅适用于URL中调用的/upload.php
脚本。您可以使用<Files>
,<FilesMatch>
,<Directory>
等进行类似的覆盖...
覆盖必须在此级别完成,因为正如您所知,在执行ini_set时,脚本已经被杀死。
答案 1 :(得分:0)
内存限制不会预先分配50Mb,这是它可以使用多少的硬限制。 如果之前没有脚本失败,则很可能您不会注意到内存限制增加。