mit header() downloaden von .jpg?

Experience1986

Erfahrenes Mitglied
Hi,

Ich wollte bei einem Wallpaper Fenster einen Direkt Download der JPG Datei erzwingen, ich weis das so etwas mit PHP gehen muss und ansatzweise habe ich ja auch schon den Code, aber leider wird nicht die JPG Datei gedownloadet, sondern die HTML Ausgabe der PHP Datei, also der Download-Dialog des Browser öffnet meine wallpaper.php mit HTML inhalt.

PHP:
$file=".".$datei;     // Dateipfad wird zusammengesetzt

$fp = fopen($file, "r");  // Datei wird geöffnet zum lesen

header("Content-Disposition: attachment; filename=$fp");   // Browser zwingen für Download
fpassthru($fp);
fclose($fp);   // Datei wird geschlossen


Die Variable $datei sieht meistens so aus: ./wallpapers/kategorie/datei.jpg, deshalb setze ich in der VAriable $file noch einen . davor, damit der Pfad wieder stimmt.

Ich habe auch schon mal den Header-Befehl ganz alleine genutzt, also:
header("Content-Disposition: attachment; filename=$file");

aber da kam das selbe ergebniss, also wie kannn ich den Browser aussfordern, ein Speicher-Dialog bei Bildern zu öffnen?
 
PHP:
<?
$file = basename($datei);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$file."\"");
header("Content-Length: ".filesize(".".$datei));
readfile(".".$datei);
?>
Ein Schuss in's Blaue...

PS: $fp enthält den Dateizeiger, nicht den Dateinamen...
 
Leider funktioniert das nicht :(

PHP:
if ($aktion == 'download')
{
$file = basename($datei);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$file."\"");
header("Content-Length: ".filesize(".".$datei));
readfile(".".$datei);
exit;
}

ich will die datei über den link ?aktion=download runter laden, so weit so gut, aber wie vorher kommt nicht das Bild, sondern die wallpaper.php?aktion=download als download.

Kann das an meinem localen Server liegen?
Habe leider zu Zeit keine möglichkeit dies auf einem anderen zu testen, was muss man denn in PHP aktivieren?
 
Ne sorry, eshat jetzt geklappt, denn ich habe bisher die Variable $datei nicht übergeben, naja manchmal sind es nur klitze kleine Fehler.

Aber vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, vielen, Dank.
 
Zurück