나는 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