2013-04-29 73 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