2016-09-17 195 views
-2

我的網站包含一些下載內容。我想訪問下載此文件只爲登錄用戶。如何阻止直接下載文件

如果用戶在瀏覽器中鍵入直接文件url,則在用戶未登錄時顯示禁止頁面。不使用任何CMS。 直接文件鏈接:localhost/files/questions/20160917070900-w2CdE9LZpE.zip

我在網上搜索,但沒有找到任何好的答案。請告訴我該怎麼做。

+0

看一看http://stackoverflow.com/questions/13881041/htaccess-deny-acces-to-directory? - 如果-已登錄out-checked-with-php看看這可以用php來完成。 – Chris

+0

它不阻止直接文件鏈接..其只是重定向,如果用戶沒有登錄的PHP文件 –

回答

0

進入文件夾中的成員創建新的文件夾中的文件,在這裏將你的所有歌曲,創建新的.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

0

把你想要在一個單獨的目錄來保護文件,並與下面添加一個.htaccess文件:

Order deny,allow 
Deny from all 

服務器,並且在該目錄中訪問文件腳本仍然可以使用,而是由URL直接訪問將不會。

+0

它否認直接鏈接,但也否認,如果用戶點擊下載鏈接 –

+0

您的鏈接正在調用一個PHP腳本處理下載,檢查看看是否用戶是否先登錄? – Chris

+0

謝謝我明白了 –