За последние 24 часа нас посетили 194337 программистов и 1996 роботов. Сейчас ищет 1441 программист ...

Чтение картинки из базы данных

Тема в разделе "Обработка изображений средствами PHP", создана пользователем kipish, 27 июл 2008.

  1. kipish

    kipish Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Львів
    Так все равно не выводится картинка, а только квадрат с красным крестиком

    Вiталiй Рябiш
    kipish@ukr.net
     
  2. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    kipish, вы Think different? :)
     
  3. kipish

    kipish Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Львів
    Извиняюсь за предыдущий пост - не понял до конца и начал кодить....

    Сделал так, как советовал Vitas - в цикле получаю ID картинки и пробую вызывать
    скрипт <img src="immagine.php?$GenID" >

    Результат тот же - квадратик с красным крестиком


    Вiталiй Рябiш
    kipish@ukr.net
     
  4. kipish

    kipish Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Львів
    Я тут подумал - а не может тут быть что-то связано с настройками на сервере,
    а то там админ любитель отключить что или просто поэкспериментировать ?



    Вiталiй Рябiш
    kipish@ukr.net
     
  5. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    kipish
    Не надо валить с больной головы ;)
    Там между PHP-блоками пустые строки... эти пустые строки тоже ведь идут в output и скорее всего уродуют данные.
    И помни, что в скрипте можно только одну картинку сгенерировать!
     
  6. kipish

    kipish Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Львів
    Да нет, мне ж надо проблему решить, а не перед начальством оправдаться, почему не получается....
    Убрал все пустые строки - результат тот же самый

    Вiталiй Рябiш
    kipish@ukr.net
     
  7. Морфин

    Морфин Активный пользователь

    С нами с:
    1 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    PHP:
    1. <?
    2. header('Content-type:image/jpeg');
    3.  
    4. $id=$_GET['id'];
    5. $conn=mysql_connect("localhost", "test", "******");
    6. $query="SELECT img from img WHERE id='$id'";
    7. $res=mysql_query($query) or die(mysql_error());
    8. $code=mysql_result($res,0);
    9. print $code;
    10. ?>
    Вывел всё нормально как ни странно
    P.S Для изображений желательно хранить вес, mime-тип и размеры
    P.P.S этот пример надуманный(я не думал о защите чтобы не усложнять скрипт)
     
  8. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Это не религиозное убеждение. Хранить картинки в БД плохо - читай "в 99% случаях хранить картинки в БД плохо". Если уж совсем приспичет, то почему бы и нет, как в данном случае. Но я бы просто собирал в кучу и зиповал.

    P.S. Вот про это
    я не понял
     
  9. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    lexa
    Если картинок много и они часто обновляются (или есть удобное управление ими) - информацию о картинках все равно придется хранить в таблице, а отдавать скриптом. Скрипту все равно придется делать запрос к БД, чтобы эту информацию получить. И уже не суть важно, лежит само "тело" картинки тут же рядом в таблице или в отдельном файле.

    Этого уже я не понял :) а отдавать как? Каждый раз раззиповывать большой файл?
     
  10. kipish

    kipish Активный пользователь

    С нами с:
    27 июл 2008
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Львів
    Ура, заработало !!!
    Выводится и картинка, и описание...
    Всем спасибо !!!

    Но хотелось бы как-то собрать все вместе, сделать тестовый пример и выложить в FAQ (если там нету), или куда еще,
    а то ж я не только здесь искал, да и не я один такой - иначе мне бы во 2-3 ответе сказали, как правильно делать или ткнули носом, где почитать можно...



    Вiталiй Рябiш
    kipish@ukr.net
     
  11. BS

    BS Активный пользователь

    С нами с:
    10 апр 2008
    Сообщения:
    149
    Симпатии:
    0
    lexa: Приведи авторитетный источник, заявляющий, что хранить картинки в БД плохо.


    kipish, Эта тема уже обсуждалась тут, погляди.
     
  12. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Dagdamor, получить информацию о картинке и получить картинку (тело) - два запроса.

    Отдавать по отдельности - файлами, конечно. Есть куча картинок. Это файлы. Подсоеденяясь к серверу сторонней программой и пытаясь получить все картинки - я бы их в архив и отдал программе. Как-то так.

    BS, приведи авторитетный источник, заявляющий, что хранить картинки в БД хорошо. Или. Приведи авторитетный источник, заявляющий, что колоть орехи попой плохо. Или... Я вообще могу много дурацких вопросов придумать.
     
  13. BS

    BS Активный пользователь

    С нами с:
    10 апр 2008
    Сообщения:
    149
    Симпатии:
    0
    lexa, ну вот ты писал "Это не религиозное убеждение. Хранить картинки в БД плохо - читай "в 99% случаях хранить картинки в БД плохо" - это твое имхо, или твой негативный опыт или опыт кого-то еще? Поделись инфой.

    вот тут например Том Кайт объясняет преимущество базы данных над файловой системой. А вот здесь приводят совсем иное мнение.
     
  14. ex0rcist

    ex0rcist Активный пользователь

    С нами с:
    3 дек 2008
    Сообщения:
    4
    Симпатии:
    0
    Напишу здесь, чтобы не плодить новые темы.
    Подскажите, возможно как-то передать скрипту дескриптор изображения, если оно уже есть на сервере, но я не хочу вскрывать его адрес для защиты сайта от скачивания фоток?
    Т.е. например если у меня есть сайт знакомств, и в папке /uimg хранится несколько тысяч фоток пользователей, потенциально доступных для скачивания download-программами, и я хочу сделать вывод каждого изображения через скрипт, например <img src='showimage.php?i={...}'> ? Получилось сделать все как надо, но вот само изображение приходится формой отправлять скрипту, а хочется сделать так, чтобы скрипт, приняв параметр, выбрал из базы нужный URL и сам загрузил изображение, если это вообще возможно конечно :) В справочнике нашел imagecreatefromgd2(), написано "создание нового изображения из GD2-файла или URL", но почемуто не сработало(
    Или натолкните на правильный способ такого рода защиты. Заранее спасибо.
    ------------------
    нашел на следующей странице форума :)
     
  15. тебе нужно послать правильный header() с указанием mime типа файла, т.к. любые скрипты PHP по умолчанию отдают результат как text/html и потом отдать файл через readfile()
    учти, это ЗНАЧИТЕЛЬНО увеличит нагрузку на сервер
     
  16. LeoCats

    LeoCats Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    19
    Симпатии:
    0
    Вот пример скрипта по выводу изображения:

    Код (Text):
    1. <?php
    2.   // Извлекаем файл изображения из базы данных
    3.   $query = "SELECT * FROM <поле> FROM <таблица> WHERE <условия>";
    4.   $img = mysql_query($query);
    5.   if(!$img) exit(mysql_error());
    6.   $image = mysql_fetch_array($img);
    7.   // Отсылаем заголовки на загрузку файла
    8.   header("Content-type: image/*");
    9.   // Отправляем файл пользователю
    10.   echo $image['content'];
    11. ?>
    Have a fun!
     
  17. LeoCats

    LeoCats Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    19
    Симпатии:
    0
    Код (Text):
    1. echo $image['content'];
    Поясню, 'content' - имя поля в котором хранится картинка.
    Вот теперь всё
     
  18. Ололо! еще один хранит картинки в базе.
     
  19. ex0rcist

    ex0rcist Активный пользователь

    С нами с:
    3 дек 2008
    Сообщения:
    4
    Симпатии:
    0
    В поле хранится не картинка, а URL картинки. Я надеюсь не про это тут говорят, что это плохо?)
     
  20. А! Не пугай так )
     
  21. lecas

    lecas Активный пользователь

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    А кто-нибудь знает, как сделать, чтобы при сохранение было не photo.php, а image.jpg ?
     
  22. lecas

    lecas Активный пользователь

    С нами с:
    22 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    здорово, так как?