<?php
class TestController extends CController
{
public function actionIndex()
{
$filename = "test.jpg";
$path=Yii::getPathOfAlias('webroot.protected.images') . '/';
$file=$path.$filename;
if (file_exists($file))
{
$img=getimagesize($file);
header('Content-Type: '.$img['mime']);
readfile($file);
exit;
}
}
public function actionDisplayimg()
{
echo "<img src='".CController::createUrl('test/')."' />";
}
}
?>
无法在test / index或test / displayimg上显示图像。有什么帮助吗?
答案 0 :(得分:3)
我认为在调用readfile之前必须设置正确的标头和内容类型。
public function actionIndex()
{
$filename = "test.jpg";
$path=Yii::getPathOfAlias('webroot.protected.images') . '/';
$file=$path.$filename;
if (file_exists($file))
{
$request = Yii::app()->getRequest();
$request->sendFile(basename($file),file_get_contents($file));
}
答案 1 :(得分:0)
你可以调用view并从action中传递一些参数并在那里显示
例如(未测试)
<?php
class TestController extends CController
{
public function actionIndex()
{
$filename = "test.jpg";
$path=Yii::getPathOfAlias('webroot.protected.images') . '/';
$file=$path.$filename;
if (file_exists($file))
{
$this->render('view',array(
'filepath'=>$file,
));
}
}
?>
并且view
你可以做点什么
echo CHtml::image(filepath, 'image', array('class' => 'banner'));