Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyciagnac obrazek z MySQL
Forum PHP.pl > Forum > PHP
bobens_83
Witam. Mam problem, mianowicie chce zapisać do bazy obrazek (gif/jpg) do bazy, potem go z niej wyciągnąć i pokazać na ekranie. Formularz to:
  1. <form action="laduj.php" method="post" enctype="multipart/form-data">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="10000000">
  3. <input type="file" name="filename">
  4. <input type="submit" value="OK">
  5. </form>


Skrypt zapisujący obrazek do bazy:
  1. <?php
  2. <$filename = $_FILES['filename']['tmp_name'];
  3. $type = $_FILES['filename']['type'];
  4.  
  5. echo $filename; echo $type;
  6.  
  7. $fp = fopen( $filename, 'r' );
  8. $content = fread( $fp, filesize($filename) );
  9. $content = addslashes( $content );
  10.  
  11. $db = new mysqli( 'localhost', 'root', '', 'feniks' );
  12. $q = "insert into img( plik_img, typ_img ) values( '".$content."', '".$type."' )";
  13. $db->query($q);
  14. $db->close();
  15.  
  16. echo '<br><a href="index.html">Powrót</a>';
  17. ?>


Natomiast odczytujący:
  1. <?php
  2. $db = new mysqli( 'localhost', 'root', '', 'feniks' );
  3. $q = "select plik_img, typ_img from img where id_img='15'";
  4.  
  5. $wynik = $db->query($q);
  6. $ile = $wynik->num_rows;
  7. echo $ile;
  8.  
  9. $row = $wynik->fetch_assoc();
  10.  
  11. $type = $row['typ_img'];
  12.  
  13. header ("content-type: $type");
  14.  
  15. $content = $row['plik_img'];
  16. $content = stripslashes($content);
  17.  
  18. echo $content;
  19. die();
  20. ?>



PS. Zainspirowalo mnie to: http://www.faqts.com/knowledge_base/view.p...aid/6726/fid/51

Po odpaleniu pokaz.php na ekranie pojawia sie najpierw
Cytat
1
Warning: Cannot modify header information - headers already sent by (output started at c:\wamp\www\pliki\pokaz.php:7) in c:\wamp\www\pliki\pokaz.php on line 13
a potem nierozkodowany obrazek, czyli masa chaotycznego tekstu.
tiraeth
Wina leży po stronie Content-type.

Content-type: image/jpeg - dla plików jpg
Content-type: image/gif - dla plików gif

instrukcja warunkowa przed wysłaniem nagłówka do przeglądarki i zacznie działać smile.gif
bobens_83
zrobilem cos takiego zeby typ sie sam dopasowywal (zmienilem 1-wszy post w temacie na aktualny) ... oczywiscie nadal nic mad.gif
__nvm
u mnie kod po polaczeniu z baza danych wyglada to tak:

  1. <?php
  2.  
  3.  $ide=$_GET['id'];
  4.  $czytaj =( mysql_query ("SELECT * FROM `users_$ide` WHERE id=1") );
  5.  while($wiersz=mysql_fetch_array ($czytaj)) 
  6.  {
  7. header("Content-type: image/jpeg");
  8. echo $wiersz['foto'];
  9.  }
  10.  
  11. ?>


poprawiam
---
nospor


sprawdzone i dziala smile.gif

---
poprawke przyjalem do wiadomosci - dziekuje smile.gif

---
moznaby a nawet trzebaby filtrowanie zmiennej z get'a zafundowac winksmiley.jpg
bobens_83
Tylko ze ten kod ma w zasadzie taka sama funkcjonalnosc jak ten moj... Jedynie zastanawia mnie ten get, ale ja poprostu go chyba ominalem.

Odnosnie kodu z tematu: po usunieciu
  1. <?php
  2. $ile = $wynik->num_rows;
  3. echo $ile;
  4. ?>
po uruchomieniu pokaz.php na ekranie nie pojawia sie nic, ale zakladka ma tytul: "pokaz.php(Obrazek JPG, 445x600 pikseli)"
PS. Pod IE pojawia sie okienko obrazka (takie z czerwonym krzyzykiem).

Prosze Plis bardzo o pomoc bo juz nie wiem co by tu wymodzic guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.