Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод изображения из MySql
 
 автор: BuZZZard   (13.06.2007 в 21:35)   письмо автору
 
 

ПоможИте, люди добры!

Из книги PHP Народные советы взял пример загрузки изображения в БД (листинг 6,50) и вывода изображения из БД (листинг 6,51)

Загрузка прошла на ура. Информация в БД появилась. Я ее оттуда потом вручную сохранил в файл.
Все хорошо, но я так понял, что после загрузки файла он должен был появиться на той странице. Этого не произошло. Видимо отсюда растут ноги следующей проблемы: При попытке вывести картинку на страницу выводится только рамка. Свойства рисунка при этом 0х0 пикселей.

Кроме того, если в скрипте вывода картинки прописать echo "Чего-нить", то вывода этой фразы не последует. Из чего делаю вывод, что скрипт не отрабатывает, а может даже не вызывается.

Может я неправильно делаю ссылку? Подскажите!

Вот как я пробовал:

<img src=module/im_get.php?id_image=1>&nbsp;
<img src=module/im_get.php?id_image="1">
<img src=module/im_get.php?id_image='1'>
<img src="module/im_get.php?id_image=1">
<img src="module/im_get.php?id_image='1'">

результат всегда один :(

   
 
 автор: Trianon   (13.06.2007 в 22:10)   письмо автору
 
   для: BuZZZard   (13.06.2007 в 21:35)
 

код файла im_get.php приведите, пожалуйста.

   
 
 автор: BuZZZard   (13.06.2007 в 22:23)   письмо автору
 
   для: Trianon   (13.06.2007 в 22:10)
 

<?php

  
// Проверяем, передан ли параметр id_image
  // и является ли он целым числом, чтобы
  // предотвратить SQL-инъекцию
  
if(!preg_match("|^[\d]+$|",$_GET['id_image']))
  {
    exit(
"Недопустимый формат URL-запроса");
  }

  echo 
$_GET['id_image'];

  
// Извлекаем файл изображения из базы данных
  
$query "SELECT * FROM image
            WHERE id_image = 
$_GET[id_image]";
  
$img mysql_query($query);
  if(!
$img) exit(mysql_error());
  
$image mysql_fetch_array($img);

  
// Отсылаем заголовки на загрузку файла
  
header("Content-type: image/*");
  
// Отправляем файл пользователю
  
echo $image['content'];
?>

   
 
 автор: BuZZZard   (13.06.2007 в 22:25)   письмо автору
 
   для: BuZZZard   (13.06.2007 в 22:23)
 

Так вот

  echo $_GET['id_image']; 


не выводит в окно ничего :(

   
 
 автор: Trianon   (13.06.2007 в 22:50)   письмо автору
 
   для: BuZZZard   (13.06.2007 в 22:23)
 

1. В этом скрипте нельзя писать отладочные echo - весь вывод идет в поток картинки.
Либо, если пишете - тут же завершайте работу скрипта exit();

2. Content-Type: image/* - недопустим.
Нужно писать конкретный тип документа.
image/gif
image/jpeg
image/png

3.Скрипт не содержит строк подключения к БД.
Если Вы их не добавите - он не заработает.

4. Проверять скрипт нужно вызовом http://localhost/im_get.php?id_image=1
если для id_image=1 существует строка в таблице image, content которой содержит файл с картинкой.

   
 
 автор: BuZZZard   (13.06.2007 в 23:18)   письмо автору
 
   для: Trianon   (13.06.2007 в 22:50)
 

А ведь заработало...... Низкий Вам поклон!

   
 
 автор: BuZZZard   (13.06.2007 в 23:51)   письмо автору
 
   для: Trianon   (13.06.2007 в 22:50)
 

А может подскажите или где почитать для чайников как эти картинки кэшировать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования