Как отобразить изображение Blob в файле шаблона лезвия Laravel? - PullRequest
0 голосов
/ 17 марта 2019

Я хочу отображать изображения из моей базы данных, которые хранятся в виде изображений BLOB-объектов.Я делаю следующее:

echo '<img src="data:image/JPG;base64,'.base64_encode($item->image).'"/>'; ?>

Это дает мне ошибку:

Изображение не может быть отображено, поскольку оно содержит ошибки

Вот какЯ загружаю

$base64 = base64_encode($img);

DB::table('items')->InsertGetId([
        'item'=>$item,
        'des'=>$des,
        'unit_sel'=>$sell,
        'unit'=>$unit,
        'stock'=>$stock,
        'weight'=>$weight,
        'cat'=>$cat,
        'image'=>$base64
    ]);

Я использую Laravel 5.5.Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 17 марта 2019

Я уже ответил в Reddit , но я суммирую 3 балла:

  • Вы сохраняете изображения в базу данных, чего следует избегать, если только вы не знаете, что делаете, и не заботитесь о масштабируемости, ресурсах, производительности ради жесткого контроля изображений.
  • Вы используете echo вместо двойных фигурных скобок {{ }} в шаблонах Blade, которые могут разрешать постоянные XSS атаки .
  • Вы уже закодировали свое изображение в base64, когда сохранили его. В вашем коде представления вы должны использовать уже закодированную base64 строку вместо того, чтобы кодировать или декодировать ее снова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...