之前一直在下载文件时使用PHP的readfile($url)方法,小的压缩包都能很顺利的下载,但是今天使用PHP ZipArchive生成的压缩包时遇到个130多M以上的就报页面无法打开,如果把压缩文件中的文件删除一部分使其变小为30M左右,下载就没问题了。
所以想了很多办法最后考虑可能是与之前在公共文件设置的memory_limit有关系。之前内存限制设置的是128M,内存限制改为1024M后问题解决。
网上也查询了memory_limit是设置内存限制的,如果使用readfile()读取文件就会和这个有关,设置太小会造成读取文件失败,直接增加上以下这行代码就可以解决问题。
ini_set('memory_limit','1024M');
以上这行代码,只适用于当前文件可用,也可以在php.ini中设置,这样全局有效,记得改后要重启服务。不过我还是建议在特定的页面增加内存限制,毕竟不是所有的页面运行都需要这么大的内存,适合最重要。