Так все равно не выводится картинка, а только квадрат с красным крестиком Вiталiй Рябiш kipish@ukr.net
Извиняюсь за предыдущий пост - не понял до конца и начал кодить.... Сделал так, как советовал Vitas - в цикле получаю ID картинки и пробую вызывать скрипт <img src="immagine.php?$GenID" > Результат тот же - квадратик с красным крестиком Вiталiй Рябiш kipish@ukr.net
Я тут подумал - а не может тут быть что-то связано с настройками на сервере, а то там админ любитель отключить что или просто поэкспериментировать ? Вiталiй Рябiш kipish@ukr.net
kipish Не надо валить с больной головы Там между PHP-блоками пустые строки... эти пустые строки тоже ведь идут в output и скорее всего уродуют данные. И помни, что в скрипте можно только одну картинку сгенерировать!
Да нет, мне ж надо проблему решить, а не перед начальством оправдаться, почему не получается.... Убрал все пустые строки - результат тот же самый Вiталiй Рябiш kipish@ukr.net
PHP: <? header('Content-type:image/jpeg'); $id=$_GET['id']; $conn=mysql_connect("localhost", "test", "******"); mysql_select_db("test"); $query="SELECT img from img WHERE id='$id'"; $res=mysql_query($query) or die(mysql_error()); $code=mysql_result($res,0); print $code; ?> Вывел всё нормально как ни странно P.S Для изображений желательно хранить вес, mime-тип и размеры P.P.S этот пример надуманный(я не думал о защите чтобы не усложнять скрипт)
Это не религиозное убеждение. Хранить картинки в БД плохо - читай "в 99% случаях хранить картинки в БД плохо". Если уж совсем приспичет, то почему бы и нет, как в данном случае. Но я бы просто собирал в кучу и зиповал. P.S. Вот про это я не понял
lexa Если картинок много и они часто обновляются (или есть удобное управление ими) - информацию о картинках все равно придется хранить в таблице, а отдавать скриптом. Скрипту все равно придется делать запрос к БД, чтобы эту информацию получить. И уже не суть важно, лежит само "тело" картинки тут же рядом в таблице или в отдельном файле. Этого уже я не понял а отдавать как? Каждый раз раззиповывать большой файл?
Ура, заработало !!! Выводится и картинка, и описание... Всем спасибо !!! Но хотелось бы как-то собрать все вместе, сделать тестовый пример и выложить в FAQ (если там нету), или куда еще, а то ж я не только здесь искал, да и не я один такой - иначе мне бы во 2-3 ответе сказали, как правильно делать или ткнули носом, где почитать можно... Вiталiй Рябiш kipish@ukr.net
lexa: Приведи авторитетный источник, заявляющий, что хранить картинки в БД плохо. kipish, Эта тема уже обсуждалась тут, погляди.
Dagdamor, получить информацию о картинке и получить картинку (тело) - два запроса. Отдавать по отдельности - файлами, конечно. Есть куча картинок. Это файлы. Подсоеденяясь к серверу сторонней программой и пытаясь получить все картинки - я бы их в архив и отдал программе. Как-то так. BS, приведи авторитетный источник, заявляющий, что хранить картинки в БД хорошо. Или. Приведи авторитетный источник, заявляющий, что колоть орехи попой плохо. Или... Я вообще могу много дурацких вопросов придумать.
lexa, ну вот ты писал "Это не религиозное убеждение. Хранить картинки в БД плохо - читай "в 99% случаях хранить картинки в БД плохо" - это твое имхо, или твой негативный опыт или опыт кого-то еще? Поделись инфой. вот тут например Том Кайт объясняет преимущество базы данных над файловой системой. А вот здесь приводят совсем иное мнение.
Напишу здесь, чтобы не плодить новые темы. Подскажите, возможно как-то передать скрипту дескриптор изображения, если оно уже есть на сервере, но я не хочу вскрывать его адрес для защиты сайта от скачивания фоток? Т.е. например если у меня есть сайт знакомств, и в папке /uimg хранится несколько тысяч фоток пользователей, потенциально доступных для скачивания download-программами, и я хочу сделать вывод каждого изображения через скрипт, например <img src='showimage.php?i={...}'> ? Получилось сделать все как надо, но вот само изображение приходится формой отправлять скрипту, а хочется сделать так, чтобы скрипт, приняв параметр, выбрал из базы нужный URL и сам загрузил изображение, если это вообще возможно конечно В справочнике нашел imagecreatefromgd2(), написано "создание нового изображения из GD2-файла или URL", но почемуто не сработало( Или натолкните на правильный способ такого рода защиты. Заранее спасибо. ------------------ нашел на следующей странице форума
тебе нужно послать правильный header() с указанием mime типа файла, т.к. любые скрипты PHP по умолчанию отдают результат как text/html и потом отдать файл через readfile() учти, это ЗНАЧИТЕЛЬНО увеличит нагрузку на сервер
Вот пример скрипта по выводу изображения: Код (Text): <?php // Извлекаем файл изображения из базы данных $query = "SELECT * FROM <поле> FROM <таблица> WHERE <условия>"; $img = mysql_query($query); if(!$img) exit(mysql_error()); $image = mysql_fetch_array($img); // Отсылаем заголовки на загрузку файла header("Content-type: image/*"); // Отправляем файл пользователю echo $image['content']; ?> Have a fun!
Код (Text): echo $image['content']; Поясню, 'content' - имя поля в котором хранится картинка. Вот теперь всё