Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Проблема с header

#11 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5
0

Отправлено 26 Март 2013 - 18:43

не совсем понимаю, а зачем в эту функцию header пихиать? :)

по умолчанию PHP передает заголовок Content-type: text/html, в данном случае это не подходит, так как браузер должен понимать с каким типом данных он работает
  • 0

#12 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 28 Март 2013 - 15:48

Зачем в документ типа text/html вставлять заголовки от документов другого типа?

Вы определитесь, что создаете. Либо хтмл-вский документ, тогда у вас будет заголовок Content-type: text/html и никаких картиночных заголовков там быть не должно, либо это картинка, тогда у документа будет заголовок от картинки.

Если же вы хотите в хтмл-е разместить картинку, так и размещайте ее по правилам хтмл-а — через тег <img src=""> и уже в параметре src ссылайтесь на картинку, у которой будет соответствующий вашему изображению header.


  • 1

#13 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 28 Март 2013 - 16:56

yury, я ж о том же ))
  • 0

#14 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 28 Март 2013 - 16:57

yury, вы суть проблемы не поняли. На сервере хранятся аватары пользователей таких размеров, какими они их загрузили. Миниатюра формируется на лету функцией imagecopyresampled, которой для корректной работы нужно передавать заголовок картинки: text/gif, text/jpeg и т.д. Это делается в отдельном методе, который вызывается как раз в параметре src тега img. Но до вызова этого метода уже происходит вывод на экран, поэтому header не срабатывает, и следовательно и функция imagecopyresampled не срабатывает некорректно - вместо картинки выводятся квакозавры.
Но я эту проблему уже решил по-другому, при загрузке пользователем аватары сразу создается миниатюра и сохраняется на сервер.


  • 0

#15 html-ka

html-ka
  • Пользователь
  • 455 сообщений
  • Репутация: 82

Отправлено 28 Март 2013 - 17:29

ну так в чем проблема, скорее всего ты все свалил в кучу и создание и вывод, просто сначала одним методоам создай аватарку или массив с аватарками, а потом его выведи где и кгода нужно, оnдели View от всего остального
  • 1

#16 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 28 Март 2013 - 18:53

не записывая в файл?


  • 0

#17 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 28 Март 2013 - 19:15

Это делается в отдельном методе, который вызывается как раз в параметре src тега img.

Это неправильно. В src должен указываться файл, содержащий картинку. Хотите создать его средствами PHP — создавайте: специальным файлом-скриптом с соответствующим создаваемому изображению заголовком и этот файл указывайте в src.
  • 1

#18 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 28 Март 2013 - 19:19

понял, спасибо. еще вопрос - я читал, что функция imagecopyresampled очень ресурсоемкая. Если ее нужно использовать несколько раз на одной странице, это нормально? например, если выводятся несколько мини-аватарок других пользователей


  • 0

#19 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 28 Март 2013 - 19:34

еще вопрос - я читал, что функция imagecopyresampled очень ресурсоемкая. Если ее нужно использовать несколько раз на одной странице, это нормально?

Нет.
Все зависит от требований по качеству и кол-ва превьюшек.Если качество не сильно важно, а картинок много — можно использовать не такую ресурсоемкую функцию imageCopyResized. Если же и превьюшек много и обязательно нужно хорошее качество, то лучше заранее создавать и хранить файлы с превьюшками (и при последующих запросах просто отдавать готовый результат).
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru