我在Yii中有一個受保護的文件夾,我正在尋找在該網站內顯示一些這些圖像。我試過下面的代碼,它在網站/索引控制器中工作,它只返回我想要的圖像。顯示來自受保護文件夾的圖像
但是,當我試圖分離代碼它不起作用。任何幫助表示讚賞。
型號
public function getImage() // will take file identifier as @param
{
$imageID = '2562584569'; // will eventually be dynamically assigned
$image = Images::model()->find('tmp_name=:id', array('id' => $imageID));
$dest = Yii::getPathOfAlias('application.uploads');
$file = $dest .'/' . $image->tmp_name . '.' . $image->extension;
if(file_exists($file)){
ob_clean();
header('Content-Type:' . $image->logo_type);
readfile($file);
exit;
}
}
並在視圖
CHtml::link('<img src="' . Yii::app()->request->baseUrl .'/images/image" />', array('product/index', 'id'=>$data['product_id'], 'slug'=> $data['product_slug']));
感謝
Jonnny
好吧,我檢索結果列表的一部分結果集是產品徽標,所以我一直使用'controller/method/id'作爲src並傳遞i對方法使用'id'。所以images/image/2562584569涉及到圖像控制器,getimage()方法,文件id。儘管 – Jonnny
仍然無法顯示圖像。事情是..只是無法查看存儲在受保護文件夾內的圖像,無論您嘗試什麼方法,直到您使用assetManager將這些文件複製到資產目錄中。 另一種方法是在Apache中工作時修改.htaccess文件。我的猜測是你是。不過,我強烈建議不要修改它。 –
我正在考慮這個一般的想法,但不確定實施。基本上src標籤調用特定的模型/方法/ ID,確認文件存在,然後獲取代理返回訪問文件並返回圖像?這會起作用嗎? – Jonnny