загрузка изображения и возврат из базы данных

0

Сначала я добавил полный исходный код для просмотра. но он имеет некоторую проблему с форматом, и весь код был испорчен в формате HTML. Итак, теперь я прошу шаг за шагом. 1) Я загрузил файл изображения в свою базу данных MySQL. (он не имеет ошибки, то есть загружен успешно) 2) Получение его обратно в браузер из базы данных MySQL. Это также не проблема (в некоторых условиях) a) Он печатает ОК, если я печатаю его перед тегом HTML. б) Я не могу видеть какой-либо основной дизайн HTML после печати изображения в браузере. c) Если я печатаю его внутри тега html. Он показывает некоторые специальные символы и цифры, то есть значение, которое мы видим в phpmyadmin, если мы выполним запрос (выберите изображение из pix;)

Итак, может ли кто-нибудь помочь мне распечатать изображение, извлекая изображение из базы данных MySql? Или может ли кто-нибудь преобразовать эту базу данных с сохраненного образа из MySQL в реальный образ, чтобы сохранить его на жесткий диск, чтобы увидеть его/отредактировать?

  • 0
    Сначала изучите HTML. Как работать с изображениями в HTML
  • 1
    @Col Shrapnel: Ваш ответ очевиден. все, что вы видели раньше, было действительно отвратительно. И было очень сложно понять. Надеюсь, на этот раз вы поймете, что я хочу сказать. А про HTML я знаю, как обращаться с изображениями. Но это немного по-другому (если вы знаете PHP).
Показать ещё 1 комментарий
Теги:

3 ответа

2
Лучший ответ

Здесь вы делаете фундаментальную ошибку. Ресурс изображения всегда сохраняется и запрашивается в отдельном файле, а не в исходном HTML-тексте страницы, в которую вы хотите встроить его.

Такой отдельный файл можно назвать, например, getimage.php.

Он будет извлекать данные изображения из базы данных (например, из записи с идентификатором 890) и выводить ее, например, так:

... code to fetch the image ....

header("Content-type: image/jpeg");  // or image/gif, image/png....

echo $imageData;

На странице HTML вы должны встроить его, используя

<img src="getimage.php?id=890">

Существует теоретическая возможность иметь данные изображения непосредственно в источнике HTML, но это не то, что вы хотите.

  • 0
    Ваше предложение действительно слишком хорошо и приемлемо. Я пытался и до сих пор есть некоторые проблемы. Можете ли вы дать мне свой адрес электронной почты. Чтобы я отправил вам этот файл, и вы внесете в него изменения. Надеюсь, у вас нет проблем. Спасибо за ценное предложение.
  • 0
    @ Извините, у меня нет больше времени, чем я могу провести здесь на SO. Если у вас есть дополнительный вопрос, задайте новый или добавьте комментарий / редактирование к текущему, кто-то обязательно найдет ответ.
0

Ответ прост:
Не храните изображения в базе данных.
Сохраните его на диске.

Он устранит все эти проблемы для вас.

-1

Как и в случае с другими ответами, лучшим решением является разделение изображения с исходным кодом html.

Если вам абсолютно необходимо, чтобы изображение было частью страницы и не использует Internet Explorer, можно вставить изображение на страницу.

он должен быть таким простым (например, png) как:

<img src="data:<?php echo $mimeType ?>;base64,<?php echo chunk_split(base64_encode($imageData)); ?>" />

Это работает только в браузерах не IE (я не уверен в IE8, поскольку на данный момент у меня его нет).

Просто убедитесь, что вы правильно используете тип mime (например, image/png для png).

Немного больше информации: http://www.greywyvern.com/code/php/binary2base64

Ещё вопросы

Сообщество Overcoder
Наверх
Меню