Bild downloaden statt ansehen

Identität

Erfahrenes Mitglied
Hallo Leute,

ich verzweifel gerade an einem Stück PHP-Code ;-)

Also ich habe eine HTML Datei mit Bildern. Diese Bildern sollen nicht angesehen werden sondern als Download bereitstehen. Im Firefox können sie auch heruntergeladen werden und anschließend betrachtet werden. Im Internet Explorer funktioniert es hingegen nicht. Der Download startet zwar, es kommt aber ein leeres Bild dabei raus, also nur der Titel wird heruntergeladen. Ich finde den Fehler einfach nicht :-(
Code:
<?php
error_reporting (E_PARSE);
header("Content-type: image/jpeg");
header("Content-Disposition: attachment; filename=" . $_GET['bild']);
header("Content-Length: " . filesize("http://localhost/galerie/images_large/" . $_GET['bild']));
readfile("http://localhost/galerie/images_large/".$_GET['bild']); 
?>
HTML Code:
Code:
<a href="image.php?bild=sommer.jpg">Download</a>
 
Probier mal Folgendes:
PHP:
$absPath = realpath($_SERVER['DOCUMENT_ROOT'].'/galerie/images_large/'.$_GET['bild']);
if ($absPath) {
	header("Content-Type: image/jpeg");
	header("Content-Disposition: attachment; filename=" . $_GET['bild']);
	header("Content-Length: " . filesize($absPath));
	readfile($absPath);
	exit;
}
Du solltest dennoch prüfen, ob $_GET['bild'] einen gültigen Wert hat.
 
Hi,

das könnte vielleicht daran liegen, dass Content-Length nicht gesetzt ist. Lies mal die Beschreibung zu [phpf]filesize[/phpf].
Warum übergibst Du da URLs (auch bei readfile) statt Dateisystempfade?

LG
 
Zurück