[GD] Probleme bei Neuberechnung von JPGs

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [GD] Probleme bei Neuberechnung von JPGs

    Wenn ich images, die über ein Formular geladen wurden mit dem untenstehenden code berechne und dann via header()
    eine neue Seite aufrufe, die nur datei.jpg und thumb.jpg ausgeben soll
    führt das zu zwei schwerwiegenden bugs:
    1)es werden nie die neuen Bilder angezeigt, sondern welche aus dem cache
    2)der anchor aus dem header-Aufruf kommt nicht in show.php an

    Kann jemand helfen?

    PHP-Code:
    move_uploaded_file($file,"datei.jpg");
    $size getimagesize("datei.jpg");
    if (
    $size[0] > 200){
        
        
    $width 100;
        
        
    $src_img = @imagecreatefromjpeg("datei.jpg");
        
        
    $old_w ImageSX($src_img);
        
    $old_h ImageSY($src_img);
        
        
    $ratio $old_h $old_w;
        
    $new_w $width;
        
    $new_h = (int)$width*$ratio
        
        
    $dst_img imagecreate($new_w,$new_h);
            
        
    imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,$old_w,$old_h);
        
    imagejpeg($dst_img"thumb.jpg");
    }

    header("Location:show.php#thumb"); 
    Zuletzt geändert von samurai; 16.03.2004, 09:17.
    Der frank-o-matic ist kein Sirius Cybernetic Corporation Produkt!

  • #2
    1. Für das Cache-Problem gibt es vermutlich keine "normale" Lösung. Ich hab mir bisher immer mit neuen Dateinamen (uniqid, time oder eine laufende Nummer anhängen) geholfen.

    Vielleicht hilft auch die Ausgabe über ein Skript mit no-cache-Headern:
    bild.php?path=thumb.jpg&mime=jpeg
    PHP-Code:
    <?
    // Caching unterdrücken
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
    header("Cache-Control: no-cache");
    header("Pragma: no-cache");
    header("Cache-Control: post-check=0, pre-check=0", FALSE);
    // Mime-Header
    header('Content-Type:image/'. $_GET['mime']);
    // Bild-Daten senden
    $fp = fopen($_GET['path'], 'rb');
    fpassthru($fp);
    fclose($fp);
    ?>

    2. In wiefern? Erscheint der Anker nicht in der Adresszeile oder wird er nicht angesprungen? Wenn er nicht angesprungen wird, zeig mal wo er sitzt; könnte damit was zu tun haben.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Der Anker erscheint nicht einmal in der Adresszeile. Das Ganze läuft eigentlich in einem CMS ab und dient dem Wiederauffinden der editierten Beiträge. Klappt auch immer problemlos, außer bei Bildupload.
      Der frank-o-matic ist kein Sirius Cybernetic Corporation Produkt!

      Kommentar

      Lädt...
      X