header("Content-type: image/jpeg") ?

unrealzero_php

Erfahrenes Mitglied
Hallo Zusammen

hab mir ein kleines Script gebastelt, dass von einem einem Formular gesendete JPG-Dateien verkleinert. Dies funktioniert soweit einwandfrei.
Nun möchte ich die verkleinerte Datei direkt über den header an den Browser senden, so, dass das Bild nicht auf dem Server gespeichert werden muss sondern der Benutzer direkt auswählen kann wohin es auf den lokalen Rechner gespeichert werden soll. Wie muss ich da vorgehen?!
PHP:
 <?php
$img_type = $_FILES["datei"]["type"];
if($img_type == "image/pjpeg" || $img_type == "image/jpeg")
{
// Image-Upload-Verzeichnis definieren
$upload_dir = "tmp/";
 
// imagedir
$img_dir = "test/";
 
// Dateiname der hochgeladenen Datei ermitteln
$dateiname = $_FILES["datei"]["name"];
 
// Hochgeladene Datei in Verzeichnis ablegen
move_uploaded_file($_FILES["datei"]["tmp_name"], $upload_dir.$_FILES["datei"]["name"]);
 
$new_size = 348;
 
$handle = opendir($upload_dir);
 
while (false!==($file = readdir($handle)))
{
	if ($file != "." && $file != "..")
	{
	 $image = $upload_dir.$file;
	 $img_info = getimagesize($image);
	$img_breite = $img_info[0];
	$img_hoehe = $img_info[1];
 
	if($img_breite > $img_hoehe)
	 {
	 $faktor = $new_size/$img_breite;
	 $new_breite = $new_size;
	 $new_hoehe = intval($faktor*$img_hoehe);
	 }
 
	else
	 {
	 $faktor = $new_size/$img_hoehe;
	 $new_breite = intval($faktor*$img_breite);
	 $new_hoehe = $new_size;
	 }
 
	if($img_info[2]==2)
	{
	 $img_orig = ImageCreateFromJPEG($image);
	 $new_image = imagecreatetruecolor($new_breite, $new_hoehe);
	 ImageCopyResampled($new_image, $img_orig, 0, 0, 0, 0, $new_breite, $new_hoehe, $img_breite, $img_hoehe);
	 ImageJPEG($new_image, $img_dir.$file,80);
	}
}
}
// JPG-Datei im temporären Verzeichnis löschen
unlink($upload_dir.$dateiname);
}
 
//header("Content-type: image/jpeg");
//header("Content-Disposition: attachment; filename=$dateiname");
?>
 
Sende einfach die HTTP-Header am Anfang des Skriptes und entferne den zweiten Parameter der imagejpeg()-Funktion, dann sollte es funktionieren.
 
Zurück