最近在研究php实现文件下载的问题,按道理来说,一般的文件下载很简单,建立一个链接指向到目标文件就可以了,但是这样就直接暴露了文件所在路径,给盗链者打开了大门,并且可能会有安全隐患,一般来说,要实现安全的文件下载,我是利用header这么来做的:
header("Content-Disposition: attachment; filename=".basename($filename));
$filename 是要下载文件的路径。
basename()函数是获得下载文件的名字。
header("Content-Disposition: attachment; filename=".basename($filename));
readfile($filename);
这些信息是用来告诉apache和浏览器下载文件的相关信息的,第一个content-type是告诉apache我的文件下载 类型,所以当你执行这段代码时,它不会去阅读这个文件,而是弹出一个下载框。第二个header发送的信息是用来告诉浏览器我的这个文件是可以当作附件被下载的,