Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] RewriteEngine i pliki JPG
Forum PHP.pl > Forum > Przedszkole
little_MASTER
Witam ponownie.
Pisze maleńki moduł do mojego cms'a dokładniej galerie.
Chce zrobić miniaturki.
Mam taki kod pliku który generuje miniaturki:
  1. <?php
  2. header(&#092;"Content-type: image/jpeg\");
  3. //header(\"Content-Disposition: attachment; filename=image_name.jpg\");
  4.  
  5. $thumbsize = 50;
  6.  
  7. $filename = $_GET['image'];
  8. $thumbsize = isset($_GET['size']) ? $_GET['size'] : $thumbsize;
  9.  
  10. list($width, $height) = getimagesize($filename);
  11.  
  12. $imgratio = $width / $height;
  13.  
  14. if ($imgratio > 1) {
  15.    $newwidth = $thumbsize;
  16.    $newheight = $thumbsize / $imgratio;
  17. } else {
  18.    $newheight = $thumbsize;
  19.    $newwidth = $thumbsize * $imgratio;
  20. }
  21.  
  22. $parts = pathinfo($filename);
  23. $ext = strtolower($parts['extension']);
  24.  
  25. $target = imagecreatetruecolor($newwidth, $newheight);
  26. if ($ext == 'png') {
  27.    imagealphablending($target, false);
  28.    imagesavealpha($target, true);
  29. }
  30.  
  31. if ($ext == 'jpg' || $ext == 'jpeg') {
  32.    $source = imagecreatefromjpeg($filename);
  33. } else
  34.    if ($ext == 'png') {
  35.        $source = imagecreatefrompng($filename);
  36.    } else
  37.        if ($ext == 'gif') {
  38.            $source = imagecreatefromgif($filename);
  39.        }
  40.  
  41. imagecopyresampled($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width,
  42.    $height);
  43.  
  44. if ($ext == 'jpg' || $ext == 'jpeg') {
  45.    imagejpeg($target, &#092;"\", 70);
  46. } else
  47.    if ($ext == 'png') {
  48.        imagepng($target);
  49.    } else
  50.        if ($ext == 'gif') {
  51.            imagegif($target);
  52.        }
  53.  
  54.  
  55. imagedestroy($target);
  56. imagedestroy($source);
  57.  
  58. ?>



wszystko ok kiedy daje po get nazwę pliku.
Niestety kozystam z simpleviewera i chciałbym pominąć tworzenie i przechowywanie miniaturek.

Chciałbym wykorzystać pliki .htaccess do przerzucenia nazwy pliku jpg jako parametr

Kod
Options FollowSymLinks
    
    RewriteEngine On
    
    RewriteRule ^(.+)\.jpg$ getthumb.php?image=$1


Niestety zamiast wyświetlić właściwy obrazek wyświetla jpg'a z adresem pliku

Przykład:
http://kizimizi.uggo.pl/getthumb.php?image=ja.jpg
ew
http://kizimizi.uggo.pl/getthumb.php?image...pg&size=120
niestety wchodząc na:
http://kizimizi.uggo.pl/ja.jpg
widzimy obrazek z linkiem.
Podejrzewam że błąd jest w .htaccess.

Pomóżcie...
erix
  1. dodaj tag do tematu
  2. tytuł niewiele mówi o problemie

To są wszystkie regułki?
little_MASTER
Tak, tylko te reguły mam dodane.
Narazie robię dla jpg, potem dorzucę obsługę innych plików, tzn gif, png itp
erix
Hmm, a na localhoście działa? Bo to wygląda tak, jakby dołączało plik z reklamami hostingu...
little_MASTER
Nie sprawdziłem, ale już to robie. Faktycznie o tym nie pomyślałem dry.gif

Na localu (wamp serwer, mod_rewrite wczytany) mam taki błąd:

Cytat
<br />
<b>Warning</b>: getimagesize(ja) [<a href='function.getimagesize'>function.getimagesize</a>]: failed to open stream: No such file or directory in <b>C:\wamp\www\script\getthumb.php</b> on line <b>10</b><br />
<br />
<b>Warning</b>: Division by zero in <b>C:\wamp\www\script\getthumb.php</b> on line <b>12</b><br />
<br />
<b>Notice</b>: Undefined index: extension in <b>C:\wamp\www\script\getthumb.php</b> on line <b>23</b><br />
<br />
<b>Warning</b>: imagecreatetruecolor() [<a href='function.imagecreatetruecolor'>function.imagecreatetruecolor</a>]: Invalid image dimensions in <b>C:\wamp\www\script\getthumb.php</b> on line <b>25</b><br />
<br />
<b>Notice</b>: Undefined variable: source in <b>C:\wamp\www\script\getthumb.php</b> on line <b>41</b><br />
<br />
<b>Warning</b>: imagecopyresampled(): supplied argument is not a valid Image resource in <b>C:\wamp\www\script\getthumb.php</b> on line <b>42</b><br />
<br />
<b>Warning</b>: imagedestroy(): supplied argument is not a valid Image resource in <b>C:\wamp\www\script\getthumb.php</b> on line <b>55</b><br />
<br />
<b>Notice</b>: Undefined variable: source in <b>C:\wamp\www\script\getthumb.php</b> on line <b>56</b><br />
<br />
<b>Warning</b>: imagedestroy(): supplied argument is not a valid Image resource in <b>C:\wamp\www\script\getthumb.php</b> on line <b>56</b><br />


Wygląda na to jakby z mojego pliku "ja.jpg" brał tylko samo "ja"
Maxik
Więc daj: RewriteRule ^(.+)\.jpg$ getthumb.php?image=$1.jpg
little_MASTER
Dzięki wielkie yahoo.gif
Wszystko działa tak jak powinno...
Jedno zmartwienie z głowy mniej.
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.