| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Есть база MySQL в ней хранятся в одном из полей типа BLOB в одной из таблиц картинки, дык как мне получить её оттуда и отобразить на страничке?
С радостью посмотрю на пример скрипта (желательно на PHP) а не на совет RTFM. Как вобще работать с BLOB полями? |
|
|
# 3 |
|
Guest
Сообщения: n/a
|
Это конечно всё хорошо, и хранить линки в базе - проверенный способ, НО есть ситуация и надобно решение... Кроме того, с точки зрения скажем целостности данных есть смысл хранить картинки в базе, то есть делая бэкап базы ты практически сохраняешь всё что у тебя есть одним движением... Можно ещё и загонять в базу сами скрипты
К примеру в отдельной таблице в поля типа TEXT.Но опять таки, есть у меня такой вопрос и мне нужна помощь... |
|
|
# 4 |
|
Птица в сети
Регистрация: 25.11.2001
Адрес: Днепропетровск
Сообщения: 39
![]() |
Это делается на PHP без проблем и элементарно.
Код:
$base=mysql_connect("хост","логин","пароль");
mysql_select_db("имя базы");
$result=mysql_query("SELECT picture FROM pix WHERE id=1"); // здесь напиши свой запрос, для получения содержимого поля BLOB с картинкой
mysql_close($base);
$line=mysql_fetch_row($result);
$pic=$line[0];
header("Content-type: image/jpeg");
echo($pic);
А вот при добавлении двоичных данных (картинок в том числе) в базу, надо не забыть предварительно, применить на них ф-цию addslashes, иначе ничего хорошего не выйдет. |
|
|
|
|
# 5 |
|
Guest
Сообщения: n/a
|
Стопчик... А если мне надо вставить полученную картинку в строку типа
Код:
<img src="вот сюда мне надо вставить то что я из базы получил"> |
|
|
# 7 |
|
Птица в сети
Регистрация: 25.11.2001
Адрес: Днепропетровск
Сообщения: 39
![]() |
На самом деле для браузера значение имеет не столько расширение файла, сколько его mime тип. Этот тип передаётся с сервера в заголовке файла. Обычно сервер определяет этот тип по расширению файла на сервере. Но в этом случае мы послылаем ему тот тип, который нам нужен (Content-type: image/jpeg) из скрипта.
|
|
|
|
|
# 10 |
|
Guest
Сообщения: n/a
|
Это я понимаю
В конечном итоге имеем что-то такое:take_img.php PHP код:
PHP код:
|
|
|
# 11 |
|
Птица в сети
Регистрация: 25.11.2001
Адрес: Днепропетровск
Сообщения: 39
![]() |
Ну вобщем да, так оно обычно и делается, хотя варианты всегда есть. Если ты хочешь, например, чтоб у тебя был только один скрипт - сделай один, чтоб с одним параметром выводился текст, с другим - картинка, и вызывай его из него самого.
Кстати, обрати внимание, например, на свойства картинки - аватара слева. Вот его урл http://imho.ws/avatar.php?userid=193...ine=1041493111 Тот же принцип
|
|
|
|
|
# 12 |
|
Registered User
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660
![]() ![]() |
$extension=strtolower(substr(strrchr($filename,"."),1));
if ($extension=='gif') { header('Content-type: image/gif'); } elseif ($extension=='jpg' or $extension=='jpeg') { header('Content-type: image/jpeg'); } elseif ($extension=='png') { header('Content-type: image/png'); } во и как и VB приделывать надо к УРЛУ или дату или md хэш какой-нидь, чтобы кэширование избегать
__________________
Всё будет хорошо! |
|
|
|
|
# 13 |
|
Guest
Сообщения: n/a
|
Какой файлнейм? Откуда? У меня двоичные данные в ячейке таблицы в БД хранятся, откуда там имя файла?
![]() Но есть ещё нюанс... Если тип поля BLOB и стоит NOT NULL то как мне проверить есть в ячейке данные или нет? Проверять на пустую строку? Или на что? И ещё, раз пошла такая пьянка Как ВНОСИТЬ данные в ячейку типа BLOB в MySQL при помощи PHP... Тогда эта тема будет законченной и готовой для FAQ если таковые кто-то тут делает...
|
|
|
# 14 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Черт, столько статей на сайтах по ПХП про то как работать с картинками в базе ...
http://php.spb.ru/php/image.html http://ardzhan.km.ru/doc/library.php?id=146 |
|
|