Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie zdjęć przez skrypt
Forum PHP.pl > Forum > Przedszkole
babatunde
Witam was...
W jaki sposób zrealizować coś takiego, na stronie w tagu img mam odwołanie do skryptu - image.php z dodatkowymi atrybutami jak nazwa pliku i wysokość, szerokość...

  1. <img src="image.php?path=David_noton_2.jpg&w=140&h=140" />


Napisałem coś takiego i przez odwołanie bezpośrednio działa, wpisując

  1. http://localhost/giottos_uk/image.php?path=David_noton_2.jpg&w=140&h=140


Bez problemu działa zarówno wyświetlanie jak i sterowanie wielkością...

  1. <?
  2. $img =  $_GET['path'];
  3. $kat = "./pictures/";
  4. $width =  $_GET['w'];
  5. $height =  $_GET['h'];
  6.  
  7. if ( is_null($img))
  8. {
  9. $img =  "./pictures/brak_zdjecia.jpg";
  10. }
  11. else {
  12. $img =  $_GET['path'];
  13. $img = $kat.$img;
  14. }
  15.  
  16. if ( is_null($width))
  17. {
  18. @list($width, $h, $type, $attr) = getimagesize($img);
  19. }
  20. else {
  21. $width =  $_GET['w'];
  22. }
  23.  
  24. if ( is_null($height))
  25. {
  26. @list($width, $height, $type, $attr) = getimagesize($img);
  27. }
  28. else {
  29.  
  30. $attr = $attr." width=\"$width\"";
  31.  
  32. }
  33. $attr = "height=\"$height\" width=\"$width\"";
  34.  
  35. $image = @imagecreatefromjpeg($img);
  36.    if(!$image)
  37.        die();
  38. header('contetn-type: image/jpeg');
  39. echo "<img src=\"$img\" $attr alt=\"getimagesize()\" />";
  40. imagedestroy($image);
  41. ?>


A wywołanie przez tag w innym pliku
  1. <img src="image.php?path=David_noton_2.jpg&w=140&h=140" />

Nie zwraca fotki
Mephistofeles
Bo trzymasz echo w skrypcie zwracającym obrazek. HTML to odbiera jako błąd i nie wyświetla.
Takie działanie nie ma sensu - po co obciążać serwer nic nie robiącym skryptem? Bo zamiast wpisywać ?w=10&h=10 lepiej wpisać width="10" height="10" i będzie lepiej - obciążenie mniejsze.
babatunde
Dobrze, ale jak to zrealizować bez echa, załóżmy że pomijam na razie wielkość obrazka...
Mephistofeles
Musisz pobrać zawartość pliku, wysłać odpowiedni nagłówek MIME, a potem zawartość pliku.
tanwel_programmer
Cytat(babatunde @ 21.03.2009, 20:00:31 ) *
Witam was...
W jaki sposób zrealizować coś takiego, na stronie w tagu img mam odwołanie do skryptu - image.php z dodatkowymi atrybutami jak nazwa pliku i wysokość, szerokość...

  1. <img src="image.php?path=David_noton_2.jpg&w=140&h=140" />


Napisałem coś takiego i przez odwołanie bezpośrednio działa, wpisując

  1. http://localhost/giottos_uk/image.php?path=David_noton_2.jpg&w=140&h=140


Bez problemu działa zarówno wyświetlanie jak i sterowanie wielkością...

  1. <?php
  2. $img =  $_GET['path'];
  3. $kat = &#092;"./pictures/\";
  4. $width =  $_GET['w'];
  5. $height =  $_GET['h'];
  6.  
  7. if ( is_null($img))
  8. {
  9. $img =  &#092;"./pictures/brak_zdjecia.jpg\";
  10. }
  11. else {
  12. $img =  $_GET['path'];
  13. $img = $kat.$img;
  14. }
  15.  
  16. if ( is_null($width))
  17. {
  18. @list($width, $h, $type, $attr) = getimagesize($img);
  19. }
  20. else {
  21. $width =  $_GET['w'];
  22. }
  23.  
  24. if ( is_null($height))
  25. {
  26. @list($width, $height, $type, $attr) = getimagesize($img);
  27. }
  28. else {
  29.  
  30. $attr = $attr.&#092;" width=\"$width\"\";
  31.  
  32. }
  33. $attr = &#092;"height=\"$height\" width=\"$width\"\";
  34.  
  35. $image = @imagecreatefromjpeg($img);
  36.    if(!$image)
  37.        die();
  38. header('contetn-type: image/jpeg');
  39. echo &#092;"\";
  40. imagedestroy($image);
  41. ?>


A wywołanie przez tag w innym pliku
  1. <img src="image.php?path=David_noton_2.jpg&w=140&h=140" />

Nie zwraca fotki




Odp:
hm. moim zdaniem to raczej nie powinno działać poniewać zdjęcia są pobierane z pełnej lokalizacji. Myślę ,że na początku skryptu możesz dodać definicję stałego adresu serwera jak np:
define(SERVERADRESS,"http://localhost/");
a w znaczniku wprowadzić coś takiego:
echo("><img src=\"".SERVERADRESS."image.php?path=David_noton_2.jpg&w=140&h=140\" />");
Może pomoże.
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.