Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]pobranie obrazu z bazy, Chrome - wyświetla ikon brak obrazka; IE - blank
agata
post 14.05.2010, 08:09:12
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 4.12.2009

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


Witam,
mam problem z pobraniem obrazu z bazy, próbuje już jakiś czas na różne sposoby jakie tylko znajduje w necie ale nie udało mi się rozwiązać problemu.

W MF zwraca mi adres pliku, nie obraz; w IE - pusta strona, Chrome - ikona brak obrazka;

Plik jest dodany do bazy, w bazie jest zapisany jako mediumBlob.

Poniżej kod dodawania do bazy (który wykonuje się ok - obraz jest dodawany) oraz kod pobierania obrazu:
  1.  
  2.  
  3. $uploadfile = $_FILES['picture']['tmp_name'];
  4. $uploadname = $_FILES['picture']['name'];
  5. $uploadtype = $_FILES['picture']['type'];
  6.  
  7. $tempfile = fopen($uploadfile, 'rb');
  8. $filedata = fread($tempfile, filesize($uploadfile));
  9. $filedata = addslashes(htmlspecialchars($filedata));
  10.  
  11. $query = mysql_query("Insert INTO zdjecia (dane, typmime, image)Values('$uploadname','$uploadtype','$filedata')") or die (mysql_error());
  12.  
  13. if ($query){
  14. echo 'ok';
  15. }
  16. else{
  17. echo'nie ok';
  18. }

  1. mysql_connect($host, $user, $password, $db) or die (mysql_error());
  2. mysql_query("Set Names 'utf8'");
  3. mysql_query("Set collation_connection = utf8_polish_ci");
  4.  
  5. header("Content-type: image/jpg, image/jpeg, image/gif");
  6.  
  7. $result = mysql_query("SELECT * FROM zdjecia where id='1'");
  8. $ile = mysql_num_rows($result);
  9. for($i=0; $i<$ile; $i++){
  10.  
  11. $row = mysql_fetch_array($result);
  12. echo base64_decode($row['zdjecie']).'zdj';//
  13. }

Proszę o pomoc, nie wiem jak to rozwiązać?
Go to the top of the page
+Quote Post
Michaxxx
post 14.05.2010, 08:23:17
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 26.08.2008
Skąd: Szczecin

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


Spróbuj
  1. echo "<img src=".$row['zdjecie']."/>

Go to the top of the page
+Quote Post
agata
post 14.05.2010, 08:36:20
Post #3





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 4.12.2009

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


  1. echo "<img src=".base64_decode($row['zdjecie'])."/>"; // jest taki sam efekt z base64_decode i bez


nic to nie dało, efekt taki sam, w MF wyskakuje komunikat ->"Obrazek "http://localhost/zad3/test.php" nie może zostać wyświetlony, ponieważ zawiera błędy."
Go to the top of the page
+Quote Post
redelek
post 14.05.2010, 08:38:27
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


może tak

  1. $query="SELECT zd_Zdjecie FROM tw_ZdjecieTw WHERE zd_Id=$id";
  2.  
  3. $result=mssql_query($query);
  4.  
  5. $data=mssql_fetch_array($result);
  6.  
  7. $data = base64_decode($data[zd_Zdjecie]);
  8.  
  9. $im = imagecreatefromstring("$data");
  10.  
  11. header('Content-type: image/jpeg');
  12.  
  13. imagejpeg($im);


Głównie chodzi o ten nagłówek header smile.gif


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
agata
post 14.05.2010, 09:01:40
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 4.12.2009

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


brak efektu :/

ale też mi się wydaje że może być jakiś problem z nagłówkami, tylko jeśli tak to jaki sad.gif

Ten post edytował agata 14.05.2010, 09:02:51
Go to the top of the page
+Quote Post
redelek
post 14.05.2010, 09:22:41
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


A nie lepiej zdjęcia trzymać poza bazą, a w bazie link do niego?
działa to szybciej, baza jest mniejsza ?

Ja osobiście takie rozwiązania stosuję, zdjęcie na dysk , a link do bazy.


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
agata
post 14.05.2010, 09:34:43
Post #7





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 4.12.2009

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


na pewno lepiej, jednak nie wychodził mi zapis pliku img i poddałam się myśląc że spróbuję trzymać je w bazie, jednak jak widać dodawanie mi się udało ale tym razem nie mogę odczytać obrazka, :/
Go to the top of the page
+Quote Post
redelek
post 14.05.2010, 09:40:40
Post #8





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


A zmień miejsce nagłówka

  1. mysql_connect($host, $user, $password, $db) or die (mysql_error());
  2. mysql_query("Set Names 'utf8'");
  3. mysql_query("Set collation_connection = utf8_polish_ci");
  4.  
  5.  
  6.  
  7. $result = mysql_query("SELECT * FROM zdjecia where id='1'");
  8. $ile = mysql_num_rows($result);
  9. for($i=0; $i<$ile; $i++){
  10.  
  11. $row = mysql_fetch_array($result);
  12. header("Content-type: image/jpg, image/jpeg, image/gif"); // TU
  13. echo base64_decode($row['zdjecie']).'zdj';//
  14. }


jeszcze taki link http://www.mwasif.com/2007/4/save-image-in-mysql-with-php/

Ten post edytował redelek 14.05.2010, 09:43:36


--------------------
Pozdrawiam
Piotrek R
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:31