Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php,mysql] problem z wyswietlaniem obrazka, j.w.
mitp
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


Witam, prosiłbym o małą pomoc. Sprawa wygląda następująco, za pomocą formularza dodaję kilka danych do tabeli, w tym zdjęcie. Wszystko ładnie dodaje, tylko napotykam problem w chwili wyświetlenia obrazka z bazy.

Tabela:
  1. CREATE TABLE `ogloszenia` (
  2. `id_ogloszenia` INT(5) NOT NULL AUTO_INCREMENT,
  3. `user` VARCHAR(64) NOT NULL,
  4. `kategoria` VARCHAR(64) NOT NULL,
  5. `data_dodania` DATETIME NOT NULL,
  6. `dotyczy` VARCHAR(64) NOT NULL,
  7. `ulica` VARCHAR(64) NOT NULL,
  8. `opis` MEDIUMTEXT NOT NULL,
  9. `email` VARCHAR(64) NOT NULL,
  10. `kontakt` VARCHAR(64) NOT NULL,
  11. `czytan` INT(5) NOT NULL DEFAULT '0',
  12. `status` INT(1) NOT NULL DEFAULT '0',
  13. `zdjecie` MEDIUMBLOB NOT NULL,
  14. `typ` VARCHAR(64) NOT NULL,
  15. `nazwa` VARCHAR(64) NOT NULL,
  16. `rozmiar` INT UNSIGNED NOT NULL,
  17. `zapis` INT(1) NOT NULL DEFAULT '0',
  18. PRIMARY KEY (`id_ogloszenia`)
  19. );


Teraz chcę pobrać dla każdego id_ogloszenia zdjęcie z bazy:
  1. <?php
  2. $zapytanie= mysql_query ("SELECT zdjecie FROM $mysql_tabela WHERE user='".$_SESSION["user"]."' AND id_ogloszenia='$id_ogloszenia'") or
  3. die ("Błąd w zapytaniu !");
  4.  
  5. $row = mysql_fetch_assoc($zapytanie);
  6. $grafika=$row['zdjecie'];
  7. $typpliku=$row['typ'];
  8.  
  9. header("Content-type:$typpliku");
  10. print $grafika;
  11. ?>


wynik:
  1. <?php
  2. ˙Ř˙ŕJFIF::˙á &#8217;ExifII* nŽŚ1
  3. ?>


kosmiczna ilosc ślaczków wszelkiego rodzaju, a przecież informuje przeglądarkę ze chcę wyswietlic grafikę, natomiast jak usunę w zapytaniu AND id_ogloszenia .... to wyskakuje pusta strona

proszę o pomoc
Go to the top of the page
+Quote Post
Ar2r
post
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 16
Dołączył: 12.06.2002
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Z tego co widzę w zapytaniu pobierasz tylko jedno pole zdjecie .
Zapomniałeś o polu typ. smile.gif
Go to the top of the page
+Quote Post
MajareQ
post
Post #3





Grupa: Zarejestrowani
Postów: 382
Pomógł: 22
Dołączył: 21.05.2007
Skąd: Elbląg

Ostrzeżenie: (0%)
-----


ja wyswietlałem obrazki dając w tabeli rowek "obrazki" jako text albo int

potem dawałem

  1. <?php
  2. $obrazki = $row['obrazki']
  3. print"<img src=\"$obrazki\" alt=\"...\">";
  4. ?>


ma się rozumieć ze w bazie była nazwa i rozszerzenie obrazka czyli np. obrazek.png
lub pełny dostep do obrazka jesli jest w innym katalogu niz plik php

Ten post edytował MajareQ 12.11.2007, 22:42:53
Go to the top of the page
+Quote Post
mitp
post
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


Ar2r - przeoczylem fakt, ale nawet teraz dalej wyswietla kosmiczne znaki:
  1. <?php
  2. $zapytanie= mysql_query ("SELECT zdjecie,typ FROM $mysql_tabela WHERE user='".$_SESSION["user"]."' AND id_mieszkania='$id_mieszkania'") or
  3. die ("Błąd w zapytaniu !");
  4. $row = mysql_fetch_assoc($zapytanie);
  5. $zdjecie = $row[0];
  6. $typ = $row[1];
  7. $grafika=$row['zdjecie'];
  8. $typpliku=$row['typ'];
  9. header("Content-type:$typpliku");
  10. print $grafika;
  11. ?>
Go to the top of the page
+Quote Post
mitp
post
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


  1. getimagesize(Resource id #9) [function.getimagesize]: failed to open stream: No such file or directory in /home/.../ogloszenia.php on line 411


o co moze chodzic?

Ten post edytował mitp 12.11.2007, 23:46:59
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $qry = mysql_query ("SELECT zdjecie FROM $mysql_tabela WHERE user='".$_SESSION["user"]."' AND id_ogloszenia='$id_ogloszenia'") or
  4. die ("Błąd w zapytaniu !");
  5.  
  6. $row = mysql_fetch_row($qry);
  7. $imgContent = $row[0];
  8.  
  9. // tworzymy tymczasowy plik ze zdjęciem
  10. $fp = md5(uniqid(rand(), true));
  11. $imgTemp = fopen($fp, 'wb');
  12.  
  13. // zapisujemy zawartosc i zamykamy plik
  14. fwrite($imgTemp, $imgContent);
  15. fclose($imgTemp);
  16.  
  17. // pobieramy mime-type
  18. $size = getimagesize($fp);
  19.  
  20. // ustawiamy nagłówek
  21. header("Content-type: {$size['mime']}");
  22.  
  23. // wyswietlamy zawartosc
  24.  
  25. // usuwamy plik
  26. unlink($fp);
  27.  
  28. ?>


Ten post edytował em1X 12.11.2007, 23:49:00


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
mitp
post
Post #7





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


  1. Warning: fopen(ba6dd6c0082d211818964673128c86f2) [FUNCTION.fopen]: failed TO open stream: Permission denied IN /home/.../ogloszenia.php ON line 396
  2.  
  3. Warning: fwrite(): supplied argument IS NOT a valid stream resource IN /home/.../ogloszenia.php ON line 399
  4.  
  5. Warning: fclose(): supplied argument IS NOT a valid stream resource IN /home/.../ogloszenia.php ON line 400
  6.  
  7. Warning: getimagesize(ba6dd6c0082d211818964673128c86f2) [FUNCTION.getimagesize]: failed TO open stream: No such file OR directory IN /home/.../ogloszenia.php ON line 403
  8.  
  9. Warning: file_get_contents(ba6dd6c0082d211818964673128c86f2) [FUNCTION.file-get-contents]: failed TO open stream: No such file OR directory IN /home/.../ogloszenia.php ON line 409
  10.  
  11. Warning: unlink(ba6dd6c0082d211818964673128c86f2) [FUNCTION.unlink]: No such file OR directory IN /home/.../ogloszenia.php ON line 412


em1X - mam nadzieje ze mi głowy nie urwiesz ze Cie tak męcze winksmiley.jpg ale nie jestem tak kumaty jak ty, tym razem cos takiego wywalilo ...
Go to the top of the page
+Quote Post
em1X
post
Post #8





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


no cóż.. u mnie działa party.gif

spróbuj zamienić linijkę:
Kod
$imgTemp = fopen($fp, 'wb');


na:
Kod
$imgTemp = fopen("./$fp", 'wb');
@chmod("./$fp", 0666);


Ten post edytował em1X 13.11.2007, 00:06:10


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
mitp
post
Post #9





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


hmm msze sprobowac w nowym pliku, moze tu mam balagan winksmiley.jpg - wielkieeeee dzieki em1X

p.s. jak juz jestesmy przy tym temacie, to czy dalo by sie z wyciagnietego zdjecia zrobic miniaturke i ja wyswietlic? ;-)
Go to the top of the page
+Quote Post
em1X
post
Post #10





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


1. sprawdź czy masz dostępną bibliotekę imageMagick na serwerze

  1. <?php
  2. print "<pre>";
  3. print exec("convert");
  4.  
  5. // generalnie jeżeli biblioteka istnieje to wyświetli Ci listę argumentów
  6. ?>


2. jeżeli nie masz IM to musisz sobie znaleźć jakiś skrypt do ich generowania. Co nieco wygrzebiesz w manualu. Wystarczy, że po linijce:

Kod
$size = getimagesize($fp);


a przed linijką:

Kod
header("Content-type: {$size['mime']}");


potraktujesz ten plik ze zdjęciem tam jakąś funkcją tworzącą miniaturę i po sprawie.


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
mitp
post
Post #11





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

Ostrzeżenie: (0%)
-----


ok dziekuje jeszcze raz
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:47