PDA

Zobacz pełną wersję : Wyświetlanie zdjęcia w własnym module.



3qn
06-06-2012, 11:24
Witam,
Napisałem prosty moduł, który wczytuje zdjęcia prosto z bazy (wiem optymalnym rozwiązaniem jest przechowywanie zdjęć na dysku)


default.php


<?php
header("Content-type: image/jpg;");
function zdjecie(){

$result = mysql_query("SELECT zdjecie FROM zdjecia WHERE 4katy_id4katy=1");
if (mysql_num_rows($result) != 0){
$row = mysql_fetch_assoc($result);

echo ($row['zdjecie']);
}
}

echo '<img src='.zdjecie().'/>';
?>

Wyświetla mi się takie oto coś:


����JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80 ��C   %# , #&')*)-0-(0%()(��C   (((((((((((((((((((((((((((((((((((((((((((((( (((((��&�"�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�� ���������������� ���������������� ���������������� ���������������� ������ ���w!1AQaq"2�B���� #3R�br� $4�%� &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�� ���������������� ���������������� ���������������� ���������������� ���� ?��s��;R�F���Ą�8铜� � ��H��P��R�(�2I�iv��8��ۜ ~Tܐ�p9�:D���)�XG����� �8I���j�HNA�Te�p�i�A�,� ����U}��>��#g��=(M���L`�Ui����O Q�J�~nG� �w����£w��dr=�?��ҔpHg 9��5H�` ��0 8���q@ *y�`R6a���� ǯ�9���%x�)�7s�R�W�)1� 0W��(#vp3���Fs�=�Fry��b~V� J`���>�0^�3��e9�Un����6�g�ߊ�P ED$�;��I=A�_#������� �@9 `g�)��פY �֤<�{"��>�� �;��x5-���2�p�c��{�n�Ӑz �t �3�-�1Ǒ�v���V���Ai�Wuy�#' �G+�R����\�q m }d5��mD^B.@���a�~_,���� �L�J� ��g<ʤ'�NB�$��������=�0�� n�N'�������U�Z���(÷� q��V5����j�[��+��t��Č�G��\�:�:B�8 �����;y������C��QXı# F;w���I]I5��`K�0sG�L�����0�)�* '�$�i ��lR �g�r1Ov���J4� �ۗ�9)Wi㞴���#�ҀCJ0�ǧ�8� ~(‘�O�I�}E1�N޹�֠�F[�7l �JFNF2z�4�F�����R1 @��$_6W�pi�A��JB I�`ԑ�z�<�{u�:��ד�84pH�=h�H0=j� ON�j ���`T�A88�"�sN�@��v'"��H��@!r�z�6윑��&� 瞢��Ķ@����� ' ㏯JL��c�iA$�޽�@ Q�9==;TeO$���i˻��֌�^3ހ��s 8qU&,\(�~$$��]U.F��@ÀNv�õ�m�3Hυ��z`b� ��<�S�9<�UW$�H�) �|�qҟ D���:�s�U�Ӵ( Y�`#��ҵm4##��p��U��T�wcQl� f$ )�{ԋϒO» m"����<�5m!���+�?v8�%��.�)�,E�v ��r W�S �!�i��q;�̜ �Nv��s��ڲNű�v[|�yz�vS'�L�w��rF��0�8���t =��kB> m���^��~�"T�S��Nc������*��D�� Z�22y9�B;��d6;�7g�L K���<!�lw�p �烑�fj���n o�.a���+�r+)="" �r�4�qב@�4�q����d��ny p1������ԋ�5"�#�ǽ;���1[�zs�v�v��8�e\]�:�+�����O*4S��[ �ޗj�aJ��$~��@=:~��R��� ��.G��]29Fx��ѓ��7�x��<!�lw�p�烑 �fj���n>


Tak jakby brak:

header("Content-type: image/jpg;");
No ale przecież jest zaimplementowane.

palyga007
06-06-2012, 11:40
Ogólnie nigdy nie przechowywałem zdjęć w bazie bo po co? Także jestem ciekaw dlaczego w ogóle chcesz to robić to po pierwsze.

Po drugie przejrzane na szybko informacje "z neta" wskazują na to o czym myślałem od początku czyli

echo '<img src='.zdjecie().'/>';

To nie zadziała bo nie ma prawa.
Trzeba wykorzystać base64_decode (http://www.php.net/Base64_decode)

3qn
06-06-2012, 11:50
Te sposób wydawał mi się jakoś łatwiejszy nie wiem jak to jest z implementacją odczytywania z dysku i zapisywania na dysk zdjęć i prawami do zapisu na dysk na serwerze.


echo '<img src='.base64_decode(zdjecie()).'/>';

Na domowym serwerze działa tu nie, i nie korzystałem z base64_decode.

palyga007
06-06-2012, 11:54
Te sposób wydawał mi się jakoś łatwiejszy nie wiem jak to jest z implementacją odczytywania z dysku i zapisywania na dysk zdjęć i prawami do zapisu na dysk na serwerze.

to ja proponuje się dowiedzieć.
Dużo łatwiej przechowywać w bazie ścieżki do plików niż pliki.

3qn
06-06-2012, 12:11
No tak tylko to nie jest rozwiązanie problemu a jedynie obejście.

palyga007
06-06-2012, 12:17
Ale ja ciągle nie rozumiem sensu przechowywania zdjęć w bazie danych.
Po co?
Żaden ze znanych mi komponentów nie przechowuje tego w ten sposób.
Może ktoś mi wyjaśni zalety stosowania tego rozwiązania.

3qn
06-06-2012, 14:07
Bo istnieje taka możliwość, czy w temacie napisane jest dywagacje na temat zalet i wad ? tej formy przechowywania zdjęć.
Twoje posty nic nie wnoszą w dyskusję.

Jola
06-06-2012, 14:36
Witam,
funkcja zdjecie() zwraca Ci zawartość pliku (obrazka) a nie ścieżkę do niego, więc wywołanie:
echo '<img src='.zdjecie().'/>';jest błędem :)
Pozdrawiam

3qn
07-06-2012, 12:40
Dziękuję działa stowrzylem sobie funckcję
zdjecie($ID), która zwraca poprzez
return $adres; adres
w dokumencie natomiast mam coś takiego

echo '<img src="'.zdjecie($ID).'" />';