Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/51: Рейтинг темы: голосов - 51, средняя оценка - 4.78
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273

Вывод картинки из записи в БД MySql

13.03.2013, 22:54. Показов 9645. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Посмотрел пару дней все форумы - никакие примеры не работают. Задача такая - храню небольшие
графические файлы как записи в БД Mysql поле file - тип данных Medium BLOB.

файл fitchgrahpics.php
PHP
1
2
3
4
5
6
7
....
$query = "SELECT `file` FROM `tempscan` WHERE 1";
    $result = $mysqli->query ( $query );    
$image = $result->fetch_assoc();
      header("Content-type: image/jpg ");
      echo mysql_escape_string( $image['file'] );
...
далее вызываю в различных вариациях
HTML5
1
<img src=\<?php fitchgrahpics.php ?>\ alt='' />
выдается страничка с квадратиком пустой картинки и дальше содержимое графич файла в виде символов(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2013, 22:54
Ответы с готовыми решениями:

Вывод картинки из MySQL + сжатие
Всем привет! Можно ли такое реализовать? В MySQL лежит большая картинка. Можно ли сделать так, чтобы на сайте показывалась сразу сжатая...

Вывод последней записи из таблицы mysql
Приветсвую. У меня вот такая ситуация. есть таблица, в ней определенное количество столбцов и первый из них ключ 'id' с параметром...

Вывод картинки из MySQL
День добрый! Мною в базу данных была загружена картинка с типом LONGBLOB. При запросе на отображение картинки из БД происходит выброс...

16
52 / 52 / 9
Регистрация: 09.10.2009
Сообщений: 984
14.03.2013, 10:51
Duzekrutov,
В бд не нужно хранить картинки , сохраняйте путь файла и выдёргивайте то что нужно вам.
P.S Попробуйте из БД извлечь слово или ник нейм , для теста , а потом подет как по маслу .
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 11:00
неправильно написали заголовок
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Content-type: image/jpeg
Добавлено через 1 минуту
Цитата Сообщение от Duzekrutov Посмотреть сообщение
mysql_escape_string
А ничего, что вы используете mysqli ? Причем неверно - вы используете ООП-подход
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
14.03.2013, 11:20  [ТС]
Неверно - имеется ввиду надо использовать соотв метод класса mysqli?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 11:23
да
PHP
1
echo $mysqli->real_escape_string($image['file'])
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
14.03.2013, 11:23  [ТС]
Цитата Сообщение от SATMAN Посмотреть сообщение
Duzekrutov,
В бд не нужно хранить картинки , сохраняйте путь файла и выдёргивайте то что нужно вам.
P.S Попробуйте из БД извлечь слово или ник нейм , для теста , а потом подет как по маслу .
Из базы извлекается все нормально - все строки - а даже файл графический записывается нормально.
Размер записи и содержимое jpeg-а одинаковы если сравнить. А хранить нужно-ненужно я решил хранить.
Файлы небольшие и никто не должет их в отрытую видеть.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 11:25
Только здесь это и вовсе не надо, это надо не для вывода из БД, почитайте зачем это надо и что это делает

Добавлено через 1 минуту
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Файлы небольшие
ага, только БД весит в несколько раз больше, чем могла бы. Плюс неудобства с заголовками. Но Ваше дело
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
14.03.2013, 11:43  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
да
PHP
1
echo $mysqli->real_escape_string($image['file'])
Это одно и тоже) Вы что думаете есть статический метод real_escape_string
и есть метод внутри класса real_escape_string которые РАЗЛИЧАЮТСЯ чем то!?

Добавлено через 17 минут
[QUOTE=KOPOJI;4252766]Только здесь это и вовсе не надо, это надо не для вывода из БД, почитайте зачем это надо и что это делает

вы имеете ввиду header не надо? Я брал его из примеров. Хотя кстати мой сервер выдает предупреждение что
header уже был послан ранее...
Попробую сформулировать задачу иначе. Как вывести картинку по содержимому в html.
Есть в php переменная с содержимым файла JPEG - как написать <img тра та та ??
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 12:06
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Это одно и тоже)
да ладно, серьезно? А то, что в процедурном подходе необходимо первым аргументом передавать указатель на соединение, не? А то, что вы создавали объект, а не использовали процедурный подход везде, не? А то, что вы используете функцию mysql_escape_string (которая, кстати, если мне не изменяет память, давно уже отключена) при работе с mysqli?
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Вы что думаете есть статический метод real_escape_string
и есть метод внутри класса real_escape_string которые РАЗЛИЧАЮТСЯ чем то!?
Представьте себе да. Только вот вы походу не понимаете разницы. И кстати, да, это не статический метод, и он лишь один.
Функция
PHP
1
2
3
4
5
6
error_reporting(-1);
function foo()
{
    return 'foo';
}
echo foo(); //foo
Статический метод
PHP
1
2
3
4
5
6
7
8
error_reporting(-1);
class Bar{
    public static function foo()
    {
        return 'foo'; //foo
    }
}
echo Bar::foo();
Обычный метод
PHP
1
2
3
4
5
6
7
8
9
10
11
error_reporting(-1);
class Bar{
    public function foo()
    {
        return 'foo';
    }
}
echo Bar::foo(); //Strict Standards: Non-static method Bar::foo() should not be called statically in ....
//foo
$bar = new Bar;
echo $bar->foo(); //foo
Цитата Сообщение от Duzekrutov Посмотреть сообщение
вы имеете ввиду header не надо?
Нет, его как раз надо. Не надо экранировать слэши при выводе, это нафиг не надо. А то, что у вас ошибка заголовков - как раз один из минусов хранения картинки напрямую в БД. Не должно быть никакого вывода информации до вывода картинки. Или выводить картинку в отдельном файле

Добавлено через 1 минуту
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Попробую сформулировать задачу иначе. Как вывести картинку по содержимому в html.
Есть в php переменная с содержимым файла JPEG - как написать <img тра та та ??
в отдельном файле формируете картинку и выводите через <img>
1
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
14.03.2013, 13:05  [ТС]
спасибо - попробую как говорится в последнем посте)
Статический я имел ввиду : если метод виден не на уровне объекта класса значит он статический. т .е.
не надо заводить объект класса mysqli чтобы он был доступен. Он доступен на уровне класса уже - и он
един для всех объектов.

Добавлено через 3 минуты
наврят ли эти методы чем либо различаются. Просто первому надо передавать парамет соединения
а классовый метод берет эту переменную из внутренних методов. Но раз один отменили - значит надо использовать классовый.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 13:36
Duzekrutov, вы так и не поняли. Это один и тот же метод, не статический. Просто пых позволяет обращаться к нему без создания объекта, но это неправильно (о чем и выдает ошибку, если включить все ошибки).
Цитата Сообщение от Duzekrutov Посмотреть сообщение
Статический я имел ввиду : если метод виден не на уровне объекта класса значит он статический. т .е.
не надо заводить объект класса mysqli чтобы он был доступен. Он доступен на уровне класса уже - и он
един для всех объектов.
Статическим он сможет стать ТОЛЬКО при объявлении его как статический. Все остальное - поблажки php, не более, статическим он от этого не станет.

Добавлено через 1 минуту
Цитата Сообщение от Duzekrutov Посмотреть сообщение
наврят ли эти методы чем либо различаются. Просто первому надо передавать парамет соединения
а классовый метод берет эту переменную из внутренних методов.
какому первому? это НЕ метод и к ООП не имеет ни малейшего отношения.
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
14.03.2013, 15:14  [ТС]
я делал так в одном файле
HTML5
1
<img src="\scan.php\" alt="" />
а в scan.php - ном:
...
PHP
1
2
header("Content-type: image/*");
echo $image['content'];
не работает - выдает бинарный код файла(
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.03.2013, 19:21
Цитата Сообщение от Duzekrutov Посмотреть сообщение
image/*
нет такого типа файла. есть image/jpeg, image/png, image/gif (из распространенных)
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
15.03.2013, 00:16  [ТС]
image/jpeg - так тоже не работает . Пробовал и раньше (
если удасться посмотрите http://xn--500-qddzwgiv.xn--p1ai/fitchscan7.php
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.03.2013, 10:09
Так в консоли же пишется:
Resource interpreted as Document but transferred with MIME type image/jpeg: "http://xn--500-qddzwgiv.xn--p1ai/fitchscan7.php".
0
26 / 25 / 3
Регистрация: 22.01.2013
Сообщений: 273
15.03.2013, 10:23  [ТС]
а как это исправить? извиняюсь если это простой ответ)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.03.2013, 10:30
ну это означает только одно: необходимые заголовки не отправляются, и тип документа устанавливается как Document вместо image/jpeg (Image)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2013, 10:30
Помогаю со студенческими работами здесь

Вывод картинки на сайте по значению в БД MySQL
Здравствуйте. Хочу сделать что бы в назначенном месте на сайте выводилась картинка та или иная в зависимости от значения в ячейки базы...

Вывод картинки на страницу товара по ID товара PHP MYSQL
Добрый день! У меня при выводе картинки из бд ничего не выводится, а мне нужно, чтобы при заходе на определенную страницу (id)...

Сделать, чтобы анонс записи начинался с абзаца после миниатюры (картинки) записи
Вот пробный сайт http://djeysonborn2016.ru/ Изменения необходимо сделать здесь: Несколько букв &quot;w&quot; расположенных...

На главной странице сайта не отображаются картинки записей, а в самой записи все картинки отображаются
Доброго времени суток всем. Помогите пожалуйста разобраться. На главной странице сайта не отображаются картинки записей, а в самой записи...

Ajax отправка данных из формы в базу mysql и вывод из базы mysql
$(function() { $('#chat_submit').click(function(e) { e.preventDefault(); var chat_name =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru