2013-04-29 69 views
1

我developeing PHP中的在线视频网站销售的媒体文件格式。要下载特定的视频用户支付特别金额,然后我提供一个链接下载视频。我使用以下代码为用户提供下载链接。如何保护文件夹,以便用户无法下载该文件夹

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; 

我已将所有视频存储在特定文件夹中。如何阻止用户阻止用户,以便他们无法查看该视频文件夹并且无法免费下载视频。或者无法抓取网站并下载所有内容。

+0

简单的解决方案:将Web服务器的文档根目录以外的视频。 – 2013-04-29 10:42:05

+0

'报头(“内容类型:应用/八位字节流”);' - 使用正确的内容类型为所使用的视频格式。 – Quentin 2013-04-29 10:42:44

回答

1

可以使该文件夹故宫中,你必须使用htacess媒体文件。

RedirectMatch 403 ^.*/sub/folder/index\.php$ 

(OR)

<Directory full-path-to/USERS> 
    Order Deny,Allow 
    Deny from All 
</Directory> 
+0

谢谢,它的工作原理。这是我正在寻找的答案。 – 2013-04-29 11:13:20

+0

欢迎您.. :) – 2013-04-29 11:34:05

5

保持文件夹中的服务器的DocumentRoot外面,所以这些文件只能通过你的脚本访问。

+0

您可以请给出一些DocumentRoot外部位置的示例路径吗? – 2013-04-29 10:55:13

+0

'/不/ WWW /视频/' – Quentin 2013-04-29 10:56:20

+0

(即)以外的文件夹WWW? – 2013-04-29 10:57:08

0

存储在数据库中的哪些文件的用户已经购买并在您的下载脚本运行检查如果允许用户下载该文件,如果不将他们重定向。

+0

例如。我有videoupload文件夹中的五个文件,并以某种方式用户设法获得该列表的路径,我如何防止用户,使他们无法获得路径,或者即使他们设法得到路径莫名其妙他们不能直接下载文件使用路径即www.xyz.com/videouploads/1.mp4 – 2013-04-29 10:51:18

+0

当用户为文件/操作付费时,您为该实例生成一个唯一的键(字符串/整数),将其存储在数据库中,然后通过将该密钥沿着url链接到下载链接,然后在授予用户下载文件的权限之前对照您的数据库进行检查。所以在所有的header()调用之前进行检查,然后如果检查失败,将用户重定向到停止尝试窃取我的文件页面:D – MadDokMike 2013-04-29 16:11:24