Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] wyświetlanie grafiki pobranej z bazy
Forum PHP.pl > Forum > Przedszkole
MartInR
Witam!

Mam problem z wyświetleniem grafiki pobranej z bazy danych.
  1. $sql = "select * from gallery where id = ".$id;
  2. $r = mysql_query($sql) or die('error: '.mysql_error());
  3. $grafika = $i['data'];
  4.  
  5. // pokaz obrazek
  6. header( "Content-type: image/jpeg");
  7. echo $grafika;


Zamiast grafiki mam komunikat.
Obrazek "http://localhost/forum3/" nie może zostać wyświetlony ponieważ zawiera błędy.

Jeśli wywalę headera to zamiast obrazka wyświetla mi się taki kod jakbym otworzył tą grafikę w notatniku.
Czyli chyba z bazy danych grafika jest pobierana właściwie.

Próbowałem też:
  1. $obraz=imageCreateFromString($grafika);
  2. imageJPEG($obraz);
  3.  
  4. imageDestroy($obraz);

Wyświetla się to samo co w przypadku 1 bez headera.
Micchaleq
a obrazek jaki ma format jpeg?

w bazie danych przechowywana jest pewnie ścieżka do obrazka więc warto sprawdzić czy kod dobrze ją interpretuje.

możesz jeszcze spróbować :
echo <img src='".$grafika."'>;
MartInR
Tak, obrazek to jpeg.

Ten sam komunikat. nie może zostać wyświetlony ponieważ zawiera błędy.


A może ktoś ewentualnie napisać jak grafikę do katalogu a, w bazie przechowywać tylko nazwę.
kuba32
no to w bazie trzymasz tylko nazwę pliku graficznego wraz z rozszerzeniem, pobierasz ją i wyświetlasz:
  1. $sql = "select * from gallery where id = ".$id;
  2. $r = mysql_query($sql) or die('error: '.mysql_error());
  3. $grafika = $i['data'];
  4.  
  5. // pokaz obrazek
  6.  
  7. echo '<img src="folder/'.$grafika.'"/>';
MartInR
No dobrze. Jeszcze potrzebuje wysłać przez formularz jakąś grafikę do katalogu.

mam coś takiego:
  1. echo '<form enctype="multipart/form-data" action="index.php?send" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  3. <input name="plik" type="file" />
  4. <input type="submit" value="Wyślij plik" />
  5. </form> ';

Do zapisu:
  1. //katalog upload znajduje się tam gdzie skrypt
  2. $dir='upload/';
  3. if(move_uploaded_file($_FILES['plik']['tmp_name'], $dir.$_FILES['plik']['name']))
  4. {
  5. echo 'Plik wysłany pomyślnie';
  6. } else
  7. {
  8. echo 'Pliku nie udało się wysłac';
  9. }


I właśnie zapis pliku do katalogu mi nie działa. Pliku nie udało się wysłać.
Może źle zapisana jest ścieżka gdzie ma być zapisany obrazek.
kadlub
  1. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />

a zwiększ value i zobacz bo może przesyłasz za duże pliki jak ja u siebie sprawdzałem to p[o zwiększeniu mogłem przesłać
MartInR
Dzięki kadlub, pomogło jakoś całkiem zapomniałem o rozmiarze.
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.