下载位于public_html上方的文件

时间:2013-12-11 20:22:17

标签: php file header download

出于安全原因,我在public_html上面的文件夹中托管了一个文档 - 将文件移动到Web根目录不是一种选择。

我正在尝试通过readfile()访问它们,但无论我下载的是0字节和空文件。我认为问题是“Content-Length”标头没有得到正确的值,因为filesize($ target)没有输出。

有什么想法?代码包括:

header('Content-Description: File Transfer');
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Transfer-Encoding: binary");
header("Pragma: public");
$file="../docs/$c/$path";
$size=filesize($file); //i think this line is the problem
header ("Content-Length: $size");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile($file_url);

1 个答案:

答案 0 :(得分:2)

我没有在您的代码中定义$file_url。也许它应该是$file

header('Content-Description: File Transfer');
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Transfer-Encoding: binary");
header("Pragma: public");
$file="../docs/$c/$path";
$size=filesize($file); //i think this line is the problem
header ("Content-Length: $size");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile($file);

我也没有看到$filename定义。