使用php启动下载,是否可以查看下载链接?

时间:2013-05-26 19:39:59

标签: php url download

我正在尝试隐藏我的产品文件的位置,因此我在购买完成后使用PHP header启动下载服务器端。是否有可能发现文件的URL?

使用以下代码

if (file_exists($_SERVER['DOCUMENT_ROOT']."/files/$file")) {
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;
}

4 个答案:

答案 0 :(得分:1)

浏览器可以选择是否遵循header('Location: ');,所以是的,他们可以。

我建议使用readfile();

之类的内容将它们发送给用户

答案 1 :(得分:1)

像现在一样流式传输结果,源是从客户端隐藏的。输出似乎来自PHP脚本然后

答案 2 :(得分:0)

答案是生成绑定到文件的唯一哈希并将它们存储在表中。然后,将具有该哈希的用户重定向到/download/n43j234jb3434之类的文件。此哈希是一次性使用。您可以使用readfile()

下载该文件

答案 3 :(得分:0)

使用位置标题,您基本上可以告诉客户端文件的位置。另一个选择是让php将文件提供给客户端,而不是重定向它们。