2 dfszhtt dfszhtt 于 2014.01.07 20:21 提问

请教:PHP readfile实现下载的问题?

请各位大牛给我诊断一下,以下问题可能是那块错了?

如下采用readfile实现下载的功能,在附件较大时失败;我做过以下尝试:
1. 下载的文件较小时是正常的;
2. 当文件大于128多兆后,则出错;PHP.INI中配置不同表现不同:
a. memory_limit = 128M时,获取的文件大小是0字节,文件是空;
b. memory_limit = -1时,提示网站连接有问题;

其它配置:
max_execution_time = 0
default_socket_timeout = -1

总体感觉缓存不够或什么超时了?请大牛指点一二,谢谢诶

if(file_exists(ROOT_PATH."$url"))
{

$filetype=substr(strrchr($url,'.'),1);
ob_end_clean();
header('Last-Modified: '.gmdate('D, d M Y H:i:s',time()).' GMT');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Disposition: attachment; filename='."$true_name.$filetype");
header('Content-type: '.$filetype);
header('Content-Length: '.filesize(ROOT_PATH."$url"));
readfile(ROOT_PATH."$url");
exit;
}

1个回答

dfszhtt
dfszhtt   2014.01.07 20:35

难道是最大只支持128M?若是这样,那超过128M的如何实现?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!