Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z odczytem obrazka z bazy danych
Forum PHP.pl > Forum > PHP
damianwz24
  1. [/php]Witam Wszystkich. Chcialem zasiegnac tutaj porady poniewaz kiedys ktos mi stad juz pomogl w sprawach msyql'a i php. Otoz mam skypt do dodawania danych binarnych do bazy i do odczytywania z bazy i wyswietlania na ekran. Zrobilem prowizorczyny przyklad polaczenie z baza dziala, dodawania i odczytywanie danych tekstowych np. zapisanych w pliku .*txt tez dziala i potem wyswietla w przegladarce wiec jest ok .. ale jak chce wyswietlic obrazek to pojawia mi sie komunikat z bledem " Obrazek http://localhost/html/dane_binarne.php nie moze zostac wyswietlony, poniewaz zawiera bledy. Dodam ze w naglowku header typ danych pobieram z formularza wiec powinno byc ok.. a nie dziala . Tak jak pisalem tylko dla obrazkow nie dziala a dla tekstu dziala..Przedstawie kod. Moze komus sie uda mi pomoc. Dzieki z gory wielkie.
  2.  
  3. [PHP] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head><title>Zapis danych binarnych do bazy</title></head>
  7. <body>
  8. <?php
  9. if (isset($_POST['submit2']))
  10. {
  11. require_once ("konfiguracja.inc"); //laczenie z baza
  12. $zapytanie2="SELECT obraz, rodzaj_obrazu FROM obrazy WHERE obraz_id=13";
  13. if ($rezultat_zapytania=mysql_query($zapytanie2))
  14. {
  15. $image=mysql_fetch_array($rezultat_zapytania);
  16. header ("Content-type: $image[1]");
  17. echo $image[0];
  18. }
  19. } else {
  20.  
  21. if (isset($_POST['submit'])) {
  22. require_once ("konfiguracja.inc"); //laczenie z baza
  23.  
  24. $image = addslashes(fread(fopen($_FILES['nazwa']['tmp_name'], "r"), $_FILES['nazwa']['size'])); //odczytaj przesylany plik z formularza
  25. $zapytanie="INSERT INTO obrazy VALUES(0,'$image','{$_FILES['nazwa']['type']}')" ; //fopen - otwiera plik, fread - czyta z pliku
  26.  
  27. if (mysql_query($zapytanie)) { echo "Obraz numer ". mysql_insert_id(). " zostal zapisany!"; }
  28. else { echo "Obraz nie moze zostac zapisany w bazie danych". mysql_error(); }
  29. } else {
  30. ?>
  31. <form action="dane_binarne.php" method="post" enctype="multipart/form-data">
  32. <input type="hidden" name="MAX_FILE_SIZE" value="100000"/>
  33. <b>Wybierz plik: <input type="file" name="nazwa"/></b>
  34. <br><br/>
  35. <input type="submit" name="submit" value="Zapisz w bazie!"/><br><br>
  36. <input type="submit" name="submit2" value="Odczytaj z bazy!"/>
  37. </form>
  38. <?php
  39. } }
  40. ?>
  41. </body>
  42. </html>[php]
  1. [/php][php]
[PHP][/PHP]
teez
Zmień formatowanie tekstu.

Wyskakuje Ci Header already sent?
damianwz24
Header already sentquestionmark.gif? a co to takiego questionmark.gif? Dodam ze jestem poczatkujacym uzytkownikiem php..
mstraczkowski
1. Jaki to typ kolumny w której przechowujesz dane binarne w bazie?
2. Sprawdź czy to nie wina filtrowania danych (addslashes - po prostu tymczasowo usuń to i sprawdź czy pomogło)
3. Czy jesteś pewny że nagłówki header, są wysyłane przed wyrzuceniem czegokolwiek na ekran ?
4. Używanie bazy danych do przechowywania danych binarnych to zdecydowanie zły pomysł (nie wpływa korzystnie na wydajność) i powinno się tego unikać (chyba, że się uczysz)
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.