如果让浏览器访问一个txt文件,会发生什么呢?比如访问localhost/test/test.txt,chrome浏览器会直接把TXT文件的内容
直接显示在浏览器上,而不是下载下来。
但是也不是所有的文件都会被直接读取在浏览器上,像.zip、.doc等文件就会被直接下载,像.jpg,.png,.txt文件
就会被直接读取。有时候,txt等文件比较大的时候,我们不希望浏览器直接读取出来,对服务器压力也比较大。
这时,指定header头信息就可以办到:
$file = fopen($url, "r"); //打开文件url
header("Content-Type: application/octet-stream"); //指定mime类型为八进制文件流
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize($url));
header("Content-Disposition: attachment; filename=$name"); //$name是文件的名字,一般在$url的最后
echo fread($file,filesize($url));
fclose($file);
此时$url指定的文件就可以下载而不是直接读取了。