我有這樣的結構:如何顯示圖像不公開
my_app
application
controllers
forms
models
views
data
signature
library
public
tests
我想在我看來,以顯示圖像在data/signature
我該怎麼辦,因爲輔助$this->baseurl()
指向公衆?
我有這樣的結構:如何顯示圖像不公開
my_app
application
controllers
forms
models
views
data
signature
library
public
tests
我想在我看來,以顯示圖像在data/signature
我該怎麼辦,因爲輔助$this->baseurl()
指向公衆?
您可以使用showImageAction(),設置標題並使用file_get_contents()或類似方法放置圖像。
如果您在DOCUMENT_ROOT中有圖像,您可以通過將瀏覽器指向位置http://example.com/images/image.jpg
來顯示它們,但是如果它們不在DOCUMENT_ROOT中,則可以使用腳本(example.com/img.php?id=100)或某個子域(img.example.com/100.jpg maby)顯示不在example.com的DOCUMENT_ROOT中的圖像。
//編輯
如果使用nginx的,你可以做這樣的:http://www.leftjoin.net/2011/03/efficient-file-serving-in-php-application-with-nginx/
在zend框架中,文檔根目錄是公開的,但是我的圖像位於:'data /簽名' – JellyBelly 2011-12-20 09:39:09
在服務器配置中,DOCUMENT_ROOT總是公開的,如果你有文件外部DOCUMENT_ROOT,你應該在控制器中編寫腳本或新動作來提供這些文件,或者使用一些子域 – piotrekkr 2011-12-20 09:45:32
所以沒有辦法用HTML img標籤? – JellyBelly 2011-12-20 09:41:37
只有當您的數據目錄位於公共路徑(我認爲這不是一件好事)時...否則您需要將您的圖像標籤指向控制器 - 將其穿過。出於安全原因,我建議你只在公開目錄中存放你的公共目錄,並將敏感數據放在它之外,並使用可以檢查授權的控制器操作來完成。 – 2011-12-20 09:45:17
恰恰是因爲它們是我把它們放在文檔根目錄之外的敏感數據! 但是,如何在視圖中顯示圖像的這個動作? – JellyBelly 2011-12-20 09:53:44