$file_dir = 'd:/file/';
$file_name = 'xxx.zip';
$file=fopen($file_dir.$file_name,r);
header(content-type: application/force-download);
header(accept-ranges: bytes);
header(accept-length: .filesize($file_dir.$file_name));
header(content-disposition: attachment; filename=.$file_name);
// 输出文件内容
echo fread($file,filesize($file_dir.$file_name));
fclose($file);
exit;
为什么我这样写了之后运行他没有直接强制下载这个文件,反而读取了这个文件??
------解决方案--------------------
你最好不要用fread($file,filesize($file_dir.$file_name));
你把
echo fread($file,filesize($file_dir.$file_name));
fclose($file);
换成
readfile($file_dir.$file_name);
试试
最好再添加以下两句
header(cache-control: must-revalidate, post-check=0, pre-check=0);
header(pragma: no-cache);
这样应该可以解决你的问题
