最近导出的时候出现一个
php内存溢出的问题,原因就是在于
下载的时候读取生成的临时文件过大,PHP内存无法容纳,一开如是想到更改PHP内存限制,但是这个只是一个缓兵之计,于是想到了另外一个方法是把文件分次读取,并下载。
以下是源代码:
- <?php
- $sourceFile = "1.tmp"; //要下载的临时文件名
- $outFile = "用户订单.xls"; //下载保存到客户端的文件名
- $file_extension = strtolower(substr(strrchr($sourceFile, "."), 1)); //获取文件扩展名
- //echo $sourceFile;
- if (!ereg("[tmp|txt|rar|pdf|doc]", $file_extension))exit ("非法资源下载");
- //检测文件是否存在
- if (!is_file($sourceFile)) {
- die("<b>404 File not found!</b>");
- }
- $len = filesize($sourceFile); //获取文件大小
- $filename = basename($s