2013-08-21 67 views
0

我想從受保護的文件夾中下載.htaccess的正常訪問文件。 我發現很多教程,但沒有一個適合我。PHP強制下載,htaccess否認所有,不能讀取文件標題

的.htaccess

<files "passportScan.jpg"> 
    deny from all 
</files> 

PHP

$file_name = 'passportScan.jpg'; 
$file_url = self::SERVER_URL . 'uploads/prom_conf/'.$user['uid'].'/' . $file_name;  
header("Content-Description: File Transfer"); 
header('Content-Type: image/jpeg'); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url); 

當我訪問網址/uploads/passportScan.jpg它是被禁止的。那是對的。但是,當我打電話給我的PHP方法強制下載文件,但然後出現錯誤「無法讀取文件頭!Uknown文件格式或文件未找到!」

編輯 如果我刪除htaccess它工作正常。

編輯2 從電子郵件中調用鏈接。

+0

向我們展示一些更多的代碼(例如,使用變量的聲明)。 –

+0

變量很好。因爲如果我刪除htaccess它完美的工作。但是,然後該文件不受保護。 – tttpapi

+0

'self :: SERVER_URL'?你使用完整的http url嗎? –

回答

2

如果該文件是同一臺服務器上的PHP腳本,只需使用內置路徑

+0

是的,我改爲相對網址,它的工作原理。謝謝! – tttpapi

+2

@tttpapi要小心,你用URL的方式來思考,而這個答案是關於文件路徑的。區別在於readfile不會嘗試加載HTTP url,而是直接讀取磁盤上的文件,這當然是可行的,因爲它與apache無關 – SirDarius

0

而不是使用完整的HTTP URL,您可以創建文件,例如。 download.php,然後使用download.php?file=ID下載該圖像。