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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод картинки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
puta
Отправлено: 18 Апреля, 2011 - 17:39:03
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Есть картинка, которая была загружена пользователем и переименована в файл с таким именем 3887546e51b4d328246edfc0b2655635
В базе данных хранится информация о расширении размере и пр.

При запросе file.php/?id=11 скрипт находит этот файл и делает следующее:

PHP:
скопировать код в буфер обмена
  1. $size = GetImageSize($targetFile);
  2. $mime = $size['mime'];
  3. $data = file_get_contents($targetFile);
  4. if (substr($mime, 0, 6) != 'image/')
  5. {
  6. header("Content-Disposition: attachment; filename=".urlencode($files->realname));
  7. echo $data;
  8. }
  9. else
  10. {
  11. header("Content-type: $mime");
  12. header('Content-Length: ' . strlen($data));
  13. echo $data;
  14. }


по логике на экране должна появится картинка, но вместо неё получаю исходный текст этой картинки. как можно решить эту проблему?
 
 Top
Fobius
Отправлено: 18 Апреля, 2011 - 17:42:29
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2009  


Помог: 1 раз(а)




puta пишет:
header("Content-type: $mime");

Так не будет работать. Попробуйте так
header("Content-type: ".$mime);
 
 Top
puta
Отправлено: 18 Апреля, 2011 - 17:44:22
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




К сожалению, результат тот же:

CODE (htmlphp):
скопировать код в буфер обмена
  1. �����ExifMM* z���(1��i��Nokia6300HHV 06.01�0220��0100����@9A(I�HH����C    #%$""!&+7/&)4)!"0A149;>>>%.DIC;��C  
.....
 
 Top
Fobius
Отправлено: 18 Апреля, 2011 - 18:09:01
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2009  


Помог: 1 раз(а)




Цитата:
file_get_contents -- Получить содержимое файла в виде одной строки

Так что ж по Вашему должно было вывести?
 
 Top
Мелкий Супермодератор
Отправлено: 18 Апреля, 2011 - 18:56:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




puta, а с какого мануала вы взяли, что getimagesize возвращает mime-тип?

Fobius пишет:
Так не будет работать. Попробуйте так

Будет, если $mime содержит верный mime-тип.


-----
PostgreSQL DBA
 
 Top
puta
Отправлено: 18 Апреля, 2011 - 19:13:27
Post Id


Новичок


Покинул форум
Сообщений всего: 56
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Fobius пишет:
Так что ж по Вашему должно было вывести?

бинарные данные

Мелкий пишет:
puta, а с какого мануала вы взяли, что getimagesize возвращает mime-тип?

http://docs.php.net/manual/en/fu...getimagesize.php первый пример

всем спасибо - проблема решена. движок перебивал хедер на plain\text
 
 Top
VokpAllk
Отправлено: 18 Апреля, 2011 - 21:43:40
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




А не проще ли получить $size[1] - (получим 1 = GIF, 2 - JPG и т.д.)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB