2017-02-19 134 views
0

有沒有什麼辦法可以設置僅供會員訪問的圖庫? 我可以設置php登錄和所有。 但我想要安全地處理圖像。任何擁有圖片網址的人都應該無法訪問該圖片,直到未以會員身份登錄。防止圖像直接訪問

+2

你需要在PHP腳本來查看您的圖片,有些事情是這樣的答案顯示的東西http://stackoverflow.com/a/13602453/2359679 – hassan

+0

可能重複[如何顯示圖像從數據庫在PHP?](http://stackoverflow.com/questions/13602259/how-to-display-images-from-database-in-php) – orvi

回答

0

您可以使用類似的東西:

將圖像放在公衆無法訪問的位置。

像圖像使用代碼:

<img src="/imageproxy.php?image=<?=$imagename?>" /> 

而一個imageproxy.php文件:

$image = filter_input(INPUT_GET,"image"); 

$imageWithPath = "/path/to/images/".$image 
if (/* is authenticated */ && is_readable($imageWithPath) && /* user can access $image*/) { 
    header("Content-Type: ".mime_content_type($imageWithPath)); 
    $handle = fopen($imageWithPath,"r"); 
    fpassthru($handle); 
    fclose($handle); 
    exit; 
} else { 
    http_response_code(403); 
    exit; 
} 

這是因爲以這種方式,您可以加載圖像,而不是異步使用Base64圖像替代預加載它們。

0

爲了防止直接訪問圖像,你可以設置會話,如果會話設置

<?php 
session_start(); 
if(isset($_SESSION['username']) && !empty($_SESSION['username'])) 
     { 
      echo "<img src='imgname.png' />"; 
     } 
?>