使用 yii2 在控制器中显示加载的视图图像

Display in view image loaded in controller with yii2

我正在尝试在视图中显示控制器中加载的图像(无法直接从视图中使用图像文件夹)。 我可以在控制器中正确加载图像,但我没有找到正确的方式来提供视图。

我试图利用 Yii::$app->response 解决方案,但它似乎对下载图像很有用,而不是在视图页面中显示它。

控制器代码(部分)

public function actionView($id)
{
     $imgFullPath = '/app/myfiles/img/65/img.jpg';

     return $this->render('view', [
         'model' => $this->findModel($id),
         'imgModel' => Yii::$app->response->sendFile($imgFullPath),
      ]);
}

我需要的是一种将图像存储在 imgModel 变量中然后在视图中显示它的方法

当然也欢迎其他方式

有人可以给我建议吗?

你可以用这个代码给你看图片:

<?= Html::img('@web/app/myfiles/img/65/img.jpg', ['alt' => 'My image']) ?>

检查此 - https://www.yiiframework.com/doc/guide/2.0/en/helper-html“图像”部分

如果您的图片不在 Web 文件夹中 - 删除它或尝试其他方式:

在您的控制器中:

$imgFullPath = '/app/myfiles/img/65/img.jpg';
$imgContentBase64 = base64_encode(file_get_contents($imgFullPath));

在您看来:

<?= Html::img('data:image/jpeg;base64,'.$imgContentBase64 , ['alt' => 'My image']) ?>

您还必须检查您的 MIME 类型

image/jpeg for .jpg and .jpeg files
image/png for .png files
image/gif fir .gif files