我试图隐藏用户的pdf文件,但我希望它们可以下载 继承我的文件结构
+-- index.php
+-- download.php
+-- content
+-- .htaccess
+-- files
+-- pdf.pdf
+-- pdf2.pdf
我尝试阻止用户使用.htaccess
访问内容文件夹。
deny from all
但是当我用这个
下载pdf文件时//download.php
header('Content-Type: application/pdf');
$file = "http://localhost/content/files/pdf2.pdf";
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file) . "\"");
浏览器无法加载它 我无法找到另一种方法来做到这一点
用户可以将文件上传到网站并确定价格 当你付了钱就可以下载了。下载前会有mysql查询,以检查用户是否已购买
答案 0 :(得分:0)
您的download.php
文件只是设置了一些标题,告诉浏览器下载文件。它实际上并没有在响应中写入文件的内容。您只需将以下代码行添加到download.php
的末尾:
readfile($_SERVER['DOCUMENT_ROOT'] . "/content/files/pdf2.pdf");
注意:正如评论中提到的gview,执行此操作的正确方法是将文件移动到文档根目录之外,这样无论您的每个目录的htaccess文件是什么,都无法访问它们。您仍然可以使用我的解决方案,但不是使用$_SERVER['DOCUMENT_ROOT']
,而是使用服务器路径。像这样:
readfile("/server/path/to/content/files/pdf2.pdf");