让用户下载不在网络目录中的文件?

时间:2012-06-05 18:20:46

标签: php download

  

可能重复:
  Allow users to download files outside webroot

大家好我想用php来允许用户从我服务器上不属于我的“web”文件的目录下载文件...有没有办法做到这一点?

e.g。

我的网络文件位于/ www / bla / bla

但我要下载的文件位于/ home / bla / bla

1 个答案:

答案 0 :(得分:2)

你能做的是这样的事情:

$file = '/home/bla/bla/file.ext';    

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;

readfile()只是检索文件的内容并打印出来。其余代码是强制下载。