我的網站包含一些下載內容。我想訪問下載此文件只爲登錄用戶。如何阻止直接下載文件
如果用戶在瀏覽器中鍵入直接文件url,則在用戶未登錄時顯示禁止頁面。不使用任何CMS。 直接文件鏈接:localhost/files/questions/20160917070900-w2CdE9LZpE.zip
我在網上搜索,但沒有找到任何好的答案。請告訴我該怎麼做。
我的網站包含一些下載內容。我想訪問下載此文件只爲登錄用戶。如何阻止直接下載文件
如果用戶在瀏覽器中鍵入直接文件url,則在用戶未登錄時顯示禁止頁面。不使用任何CMS。 直接文件鏈接:localhost/files/questions/20160917070900-w2CdE9LZpE.zip
我在網上搜索,但沒有找到任何好的答案。請告訴我該怎麼做。
進入文件夾中的成員創建新的文件夾中的文件,在這裏將你的所有歌曲,創建新的.htaccess文件,並添加以下行:
Order Deny,Allow
Deny from all
進入文件夾成員建立的文件get_file.php並添加以下代碼:
if(!empty($_GET['name']))
{
// check if user is logged
if(is_logged())
{
$file_name = preg_replace('#[^-\w]#', '', $_GET['name']);
$question_file = "{$_SERVER['DOCUMENT_ROOT']}/files/questions/{$file_name}.zip";
if(file_exists($question_file))
{
header('Cache-Control: public');
header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename={$question_file}");
header('Content-Type: application/zip');
header('Content-Transfer-Encoding: binary');
readfile($question_file);
exit;
}
}
}
die("ERROR: invalid song or you don't have permissions to download it.");
URL來獲取文件:本地主機/ get_file.php名= file_name
把你想要在一個單獨的目錄來保護文件,並與下面添加一個.htaccess文件:
Order deny,allow
Deny from all
服務器,並且在該目錄中訪問文件腳本仍然可以使用,而是由URL直接訪問將不會。
看一看http://stackoverflow.com/questions/13881041/htaccess-deny-acces-to-directory? - 如果-已登錄out-checked-with-php看看這可以用php來完成。 – Chris
它不阻止直接文件鏈接..其只是重定向,如果用戶沒有登錄的PHP文件 –