Попытка отобразить отраженное изображение из сценария PHP в и - PullRequest
0 голосов
/ 06 апреля 2020

Цель:

1) У меня есть папка с изображениями вне сети root, в которую помещаются все изображения из веб-приложения (каждый путь к изображению сохраняется в таблице БД);

2) Я хочу получить это изображение по запросу пользователя.

Простой, верно?

Я сделал:

a) Создать класс для чтения изображения (со всеми функциями безопасности и мерами безопасности, которые я помню). Он возвращает (успешно) изображение, закодированное (base64) с соответствующим типом MIME.

b) Я создал для демонстрации индекс. php, который имеет:

<img src="agivenscript.php?img=name.jpeg">

Моя единственная цель - вызвать из любого другого места в моем веб-приложении скрипт, который выводит закодированное изображение base64 с соответствующим типом пантомимы.

c) Создан скрипт "agivenscript. php", который получает имя изображения с помощью GET, создает экземпляр моего класса и получает, когда все в порядке, кодированное в base64 изображение. Затем он отображает изображение.

Что происходит:

  • Когда я делаю вывод - используя echo '<img src="' . $output64encodedwithmimetype . '">'; - в agivenscript. php он работает как шарм;
  • Более того, если я возьму содержимое $ output64encodedwithmimetype и поместу строку непосредственно в тег индекса sr c. php, это также сработает.
  • Однако оно не работает, когда я попробуйте <img src="agivenscript.php?img=name.jpeg">.

Поскольку закодированное в base64 изображение, очевидно, в порядке (и имеет тип mime), чего мне не хватает? Есть идеи?

Спасибо заранее.

1 Ответ

1 голос
/ 06 апреля 2020

data: URL-адреса схемы могут быть закодированы в Base64.

HTTP-ответы image/jpeg (или png или чего-либо еще) не может . Вам нужно обработать фактические данные изображения, не кодируя их как текст.

readfile, вероятно, все, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...