2015-04-03 26 views
0

如何在我的public_html之外訪問上傳的圖像/文檔?如何在我的public_html之外訪問上傳的圖片/文檔?

例如,我有這樣的結構,

lib/ 
upload/ (uploaded images and pdfs) 
public/index.php 
bootstrap.php 

公共/ index.php文件,

// Include application bootstrap 
require_once dirname(__FILE__) . '/../bootstrap.php'; 

$app->get('/about', function() use ($app, $log) { 
    echo '<p><img src="' . '/../upload/image/cat.jpg' . '"/></p>'; 
}); 

// Important: run the app 
$app->run(); 

我可以訪問通過dirname(__FILE__)bootstrap.php但我不能與圖像做。

我遵循這個框架的想法從this。但是,我可以將我的圖像和文檔存儲在公用文件夾之外嗎?

JavaScript文件怎麼樣?

我注意到大多數框架將這些項目存儲在公用文件夾中。

回答

1

引用bootstrap.php和圖像的方式有很大的不同。第一個是由PHP處理器加載,後者由瀏覽器加載。當然,如果您有權限,但是客戶端瀏覽器未在服務器上運行,則可以在PHP中打開一個圖像文件,例如,使用fopen()

您必須提供一個腳本來將文件發送到瀏覽器,或者在文檔根目錄下的HTML中引用已上傳的圖像,或者在Web服務器上設置別名。

+0

'你要麼必須提供一個腳本,將文件發送到瀏覽器,或者有要下的HTML引用上傳的圖片文檔根目錄,或者在Web服務器上設置別名。「我該怎麼做? – oasis 2015-04-03 10:23:34

1
<?php 
header('Content-type: image/jpg'); 
readfile('/path/to/upload/image/cat.jpg'); 

也許工作這

<?php 
header('Content-Type: image/jpeg'); 
$_file = 'cat.jpg'; // or $_GET['img'] 
echo file_get_contents('/upload/image/'.$_file); 
?>