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
Форумы портала PHP.SU :: Версия для печати :: извлечение изображения из БД
Форумы портала PHP.SU » PHP » Программирование на PHP » извлечение изображения из БД

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

1. den385 - 08 Марта, 2009 - 16:58:18 - перейти к сообщению
Hi,

я решил попробовать запихнуть картинки в мускул (ну, хочется уметь, знаю что это не лучший вариант) - они запихнулись, но вот вывести их теперь не получается. Подскажите плиз! (Знаю, подобная тема тут уже была, но там не было ответа.)

Рецепт запихивания и вытаскивания взял вот отсюда [] ,

Вытаскиваю таким образом.

в файле image.php прописано:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. if ( isset( $_GET['id'] ) ) {
  5.   // Здесь $id номер изображения
  6.   $id = (int)$_GET['id'];
  7.   if ( $id > 0 ) {
  8.     $query = "SELECT `content` FROM `images` WHERE `id`=".$id;
  9.     // Выполняем запрос и получаем файл
  10.     $res = mysql_query($query);
  11.     if ( mysql_num_rows( $res ) == 1 ) {
  12.       $image = mysql_fetch_array($res);
  13.       // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
  14.       header("Content-type: image/*");
  15.       // И  передаем сам файл
  16.       echo $image['content'];
  17.     }
  18.   }
  19. }
  20. ?>


И в image.html:
PHP:
скопировать код в буфер обмена
  1.  
  2. <img src="image.php?id=17" alt="" />
  3.  

Только id у меня меньше, т.к. в бд попало (отображается в SQLyog) 5 картинок.

Помогите плиз, люди Подмигивание
2. Dastar - 08 Марта, 2009 - 19:03:41 - перейти к сообщению
А не лучше просто держать в бд название картинки?
3. den385 - 08 Марта, 2009 - 19:49:13 - перейти к сообщению
Dastar пишет:
А не лучше просто держать в бд название картинки?


Наверное, лучше, но все же хочется запихнуть картинки - к тому же они уже там лежат, осталось только вывести Подмигивание
4. magistr - 08 Марта, 2009 - 19:53:36 - перейти к сообщению
Какие поля в таблице?
ножно просто в таблице 2 поля
id и image


в id записываем id рисунка
а в image текст что то типа <img src="111.gif" width="10" height="10" />
и в зависимости от id выводи image....
5. den385 - 08 Марта, 2009 - 20:26:13 - перейти к сообщению
Это все понятно, но я все же хочу хранить изображения в БД - в типе BLOB
6. valenok - 09 Марта, 2009 - 00:53:55 - перейти к сообщению
ну так открой image.php?id=17 в браузере и посмотри что будет.
Если будут корякозябры - что заголовки укажи правильные.
Если ничего не будет, то это то, что прочиталось из базы. То есть ничего.
7. Гость - 09 Марта, 2009 - 02:28:22 - перейти к сообщению
Magistr иDastar - не путайте человека - ему надо зранить сами двоичный данные картинок в базе данных в типе *BLOB

Den385 Так как ID уникальное поле то запрос $query = "SELECT `content` FROM `images` WHERE `id`=".$id; должен по идее выдавать содержимое одной картинки Кстати неплохо хранить в базе и mime-тип картинеи чтобы потом ее выводить

Den385 И вообще здесь на форуме в разделе собсвтенные разработки есть написанная мной фотогалерея можете посмотреть исходникии и взять если что надо - механизм хранения изображений там именно такой какой вы хотите Улыбка
8. den385 - 09 Марта, 2009 - 15:05:13 - перейти к сообщению
Всем большое спасибо! Я нашел-таки ошибку! Оказывается она в том, что я скрипт image.php, на кот. ссылается тэг <img>, начинал не с <? с первой строки, а с тэга <html>.

Я знаю, что я идиот, ребят, но я привык, что php-код расположен в теле страницы, а не сам по себе.

Еще раз спасибо! Хорошо, что есть те кто отвечает!

Денис

 

Powered by ExBB FM 1.0 RC1