Diskuze: php header chyba
David Hartinger:3.9.2012 11:47
Dočkáme se již tvé odpovědi? http://www.itnetwork.cz/…03f53fb2c33f#…
Nebo si myslíš, že s námi nebudeš mluvit a my s tebou ano?
Kit:3.9.2012 12:00
Hlavičky header()
musíš odeslat ještě před prvním znakem
výstupu. Před voláním této funkce nesmí být žádný výstup HTML ani
příkaz echo.
David Hartinger:3.9.2012 12:12
HTTP protokol funguje na principu textových souborů. Nejprve se zapíše hlavička a až potom následuje samotný obsah HTML stránky. Pokud začneš psát stránku a potom si vzpomeneš, že chceš psát hlavičku, už to moc dobře nejde, proto ta chyba. Je to zapřičiněno mícháním výstupu s logikou, např. v MVC architektuře by se toto nestalo.
ROOBYNSKYJ:2.6.2014 11:02
Dobrý den
K tomuto tématu mám dotaz.
Jakým způsobem zobrazím obrázek uložený v databázi v proměnné BLOB,
pokud jsou webové stránky vytvořené v architektuře MVC.
Standardním řešením, které jsem našel, je po načtení dat z DB říci
prohlížeči, že zobrazovaný obsahem bude obrázek za pomocí
následujícího příkazu: header ("Content-type: image/jpeg");
V MVC je však již hlavička odeslaná v základním pohledu a následně, kdy
je potřeba v určitém obsahu zobrazit tento obrázek, tak znovu použít
příkaz header nelze.
Máte prosím pro tento způsob v MVC architektuře nějaké řešení?
Děkuji.
mkub:2.6.2014 11:53
premenna BLOB? to je co za premennu? skor by som povedal, ze to je datovy
typ...
a nemusis ten obrazok definovat v headeri, staci, ked to vezmes z databaze a
vlozis to ako obrazok...
existuje este jeden sposob, ako vlozit obrazok do dokumentu - cez tag
<img>, lebo existuje aj iny sposob vkladania obrazku, nez pomocou URL
ROOBYNSKYJ:2.6.2014 12:11
Pardon. Blob jsem myslel jako datový typ. Bohužel pokud načtený obrázek přímo vložím do tagu IMG src, tak při zobrazení zdrojového kódu lze vidět toto:
<img src=����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
��C
$.' ",#(7),01444'9=82<.342��C
2!!22222222222222222222222222222222222222222222222222��P<"��
���}!1AQa"q2���#B��R��$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
���w!1AQaq"2�B���� #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��x���h*`)�2EI#�"��pI��R�T� Ԟ��k�4
"����/fC���z������n��G�H�"%Y���>�J���o$S,p�ë6�*����ϡ4ߋ��(�4����\���s�WP���da�E|x�γ��½�^3��uk{��%����?�۷_����q=��"�IZ���,j�r�2�#��.RF��μ,|3���M|���9?����My7�ki�7k���3����[w0��
��68$�`7|�c�����J�"��Ɔ�h�H��t��L����.�<�J�woSӅ��.}�!bA�W+��[�e\��D�̟;m����Os�X������ꁒj��q��x-�O��q�JJ��%kX���Oy�xV�%�w�����)�.��wdc<�vz�|v<�nc�s�7���|1<2��#+c�9����l�l$�߳~>lg9�����<��������w�4�Z
JD�>���V��l/'���bb����TF�f��I�n8P9�'}�N�\��4�qv����ҭ�Y$q\�ˊU#oe$c�|:���s�/��yfIcUB0ǂ*u�r�Z�'��h����֩�v�kh�$����ֽ�#̛NM�!*U5Ud��bj�5�4Uo�^$������oӥ;r�`�M�#��!�O�c����r6�YM
�$20�^J�K������f�X��O���`�>��Ǡ��|��{,�z�#��I4��v���W6
2�O�I�Dg�U� ��¡5+�#�k�����Z�����1���ʻ���~����XLy�a�� �%r�yE������'����O�kq+Z�'�G19����Ry��p7j>&��u"��M��Y�ڿ��)c�#֥GH�4�;�5���t~�\Y��?���=���>P̼t5�v��er�v��U�;�t�iM�QG����Y ����V�N���U5fu�������.ⰰ�y�T�z�Ó���
ؑ�*�5�k:�ƶ�P2[�z�D(�=�'V1[�"��<�J��V�����HD1�˱zn��a��
�Fi�rm�j�RV<�+����>
mkub:2.6.2014 12:28
ale to by si musel ten obrazok najskor prekodovat, aby si to mohol vlozit do toho tagu
skus toto skopirovat:
<img alt="" src="data:image/gif;base64,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" />
to by ti malo vlozit logo PHP do stranky...
a na konverziu som pouzil: http://webcodertools.com/…erter/Create
cize ked chces vkladat do databazy obrazky, tak to prekonvertuj do Base64
mala by ti pomoct tato funkcia: http://www.php.net/…4-encode.php
mkub:2.6.2014 12:46
vtip je v tom, ze neukladas cely obsah obrazka, ale iba jeho popis (cize URI)
a okrem toho pomocou Base64 kodovania sa setri aj miestom a neprenasa sa tolkio
udajov medzi klientom a serverom a tym sa zeychluje aj nacitavanie
stranky...
ale nevyhoda je, ze je dobry len na mensie obrazky, ako su loga as pod... na
fotky odporucam vyhradit zvlast adresar a v DB si viest zaznam, kde je ta-ktora
fotka a vkladat rovno URL fotky
Díky za informace.
Po překódování se obrázek zobrazí.
Budu obrázky ukládat do DB v tomto kódování.
mkub:2.6.2014 13:41
a hlavne nezabudni ich potom vkladat ako URI, nie ako URL do tagu
<img>
cize do <img src="..."> nezabudni dat: "data:image/gif;base64,..." tak,
ako to je v tej ukazke
Zobrazeno 12 zpráv z 12.