Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php启动下载,是否可以查看下载链接?_Php_Url_Download - Fatal编程技术网

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

使用php启动下载,是否可以查看下载链接?,php,url,download,Php,Url,Download,我试图隐藏我的产品文件的位置,所以在购买之后,我开始使用PHP在服务器端下载。是否有可能发现文件的url 使用以下代码 if (file_exists($_SERVER['DOCUMENT_ROOT']."/files/$file")) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: atta

我试图隐藏我的产品文件的位置,所以在购买之后,我开始使用PHP在服务器端下载。是否有可能发现文件的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;
}

浏览器可以选择跟随
标题('Location:')或否,所以是的,他们可以


我建议使用
readfile()之类的方法将它们流式传输给用户

答案是生成绑定到文件的唯一哈希并将其存储在表中。然后使用该散列将用户重定向到文件,如
/download/n43j234jb3434
。此哈希是一次性使用的。您可以下载带有位置头的文件,您基本上是在告诉客户端文件的位置。另一种选择是让php将文件馈送到客户端,而不是重定向它们。

像现在一样流式处理结果,源代码对客户端隐藏。输出似乎来自php脚本,然后用实际代码更新了问题。你认为我的代码可以发现链接吗?如果是这样的话,我应该改变什么?对不起,这已经过时了,因为他修改了问题