Отображение изображения через php файл с изображением типа контента Yii - PullRequest
4 голосов
/ 14 января 2012
<?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/')."' />";
    }
}
?>

Невозможно отобразить изображение ни в тесте / указателе, ни в тесте / отображении. Любая помощь?

Ответы [ 2 ]

3 голосов
/ 24 октября 2012

Я думаю, вы должны установить правильные заголовки и тип содержимого для вызова 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));
        }
0 голосов
/ 14 января 2012

ну, вы можете вызвать view и передать ему некоторые аргументы из действия и отобразить их там

например (НЕ ПРОВЕРЕНО)

<?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'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...