Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[GD] Probleme bei Neuberechnung von JPGs [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[GD] Probleme bei Neuberechnung von JPGs


 
samurai
16-03-2004, 10:12 
 
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?

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");

 
Titus
16-03-2004, 11:25 
 
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<?
// 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.

 
samurai
16-03-2004, 11:29 
 
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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:13 Uhr.