Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изображение в mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужно засунуть несколько изображений в mysql
Vinyl
Отправлено: 21 Апреля, 2012 - 19:47:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Доброго времени. Нужно положить несколько картинок в mysql. Сразу скажу, я не сторонник таких вещей, но тут ситуация требует + они будут jpeg до 20кб, не больше 10 штук. Так что, помогите плиз. Искал в интернете, но толком по теме ничего не нашел (а может не понял просто).


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
tato
Отправлено: 21 Апреля, 2012 - 19:53:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Размещение бинарных файлов (картинок) в базе данных
Для помещеня бинарного файла в базу данных, надо...

1. создайте таблицу с полем BLOB

2. прочитайте данные, которые надо поместить в базу данных, в переменную $upload. Если это файл (картинка) на диске, то сделайте это так:
<?
unset($upload); // все переменные перед первым использованием надо уничтожать
$f=fopen("image.jpg","rb"); // имя файла или картинки -- открыли файл на чтение
while(!feof($f)) $upload.=fread($f,65000); // считали файл в переменную
fclose($f); // закрыли файл, можно опустить
...


3. защитите переменную от опасных символов ("прослешьте переменную"):

...
$upload=addslashes($upload);
...


4. загрузите переменную в базу данных:

...
mysql_query("INSERT INTO <таблица> (<поле>) VALUES ('$upload')");
?>

"Таблица" - имя таблицы, "поле" - название колонки в таблице типа BLOB, что были созданы при выполнении пункта 1. Разумеется, чтобы выполнить HTML запрос надо предварительно установить соединение с базой данных.

Для взятия бинарного файла из базы данных в браузере, надо...

Вы будете смеяться, но ничего особого не надо. Просто прочитайте ее как простую переемнную из базы данных. В переменную на языке ПХП можно упихать все, что надо. Правда, есть лимит памяти (будьте внимательны с переменными от 2 МБ), о котором надо помнить. Разумеется, лимит увеличить, но это тема не данной статьи.

Чтобы показать картинку их базы данных, надо...

Освоить пример 1 этой статьи, а вместо чтения из файла, взять переменную из базы данных, примерно вот так:
<?
... // подключение к Б.Д.
$res=mysql_query("SELECT <поле> FROM <таблица> WHERE <условия>")
or die("SQL ERROR in line ".__LINE__.", function mysql_query");
$image=mysql_result($res, <строка>, <колонка>); // берем переменную из б.д.
header("Content-type: image/gif");
echo $image;
?>


-----
просто ?: сложно
 
 Top
Мелкий Супермодератор
Отправлено: 21 Апреля, 2012 - 19:54:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Тип поля blob, читаете file_get_contents, экранируете и вставляете как строку.


-----
PostgreSQL DBA
 
 Top
tato
Отправлено: 21 Апреля, 2012 - 19:54:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




копипаст не помню откуда.


-----
просто ?: сложно
 
 Top
Vinyl
Отправлено: 22 Апреля, 2012 - 09:07:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 645
Дата рег-ции: Янв. 2012  
Откуда: Армавир, Краснодарский край


Помог: 15 раз(а)




Отлично! Спасибо, господа.


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB