Downloadfenster des Browser öffnet sich nicht!

easyJoe

Grünschnabel
Mit Flash Downloadfenster des Browser öffnen

Hallo an alle im Forum :)

Habe folgendens, wahrscheinlich sehr kleines, Problem.
Habe eine Seite in Flash erstellt und möchte das man mit Klick auf 'Download' ein Bild herunterladen kann. (Downloadfenster des Browser soll sich öffnen!)
Ich übergebe eine Variable (mit dem Pfad des Bildes) an mein PHP Script, das foldendermaßen aussieht:
PictPath ist die Var übergeben wird.


<?php
$filename = $PictPath;
$saveasname = basename($filename);
$filesize = filesize($filename);

header("Content-type: image/jpeg");
header("Content-Disposition: attachment; filename=$saveasname");
header("Content-Length: ".filesize($filename));
Header("Expires: 0");
Header("Cache-Control: no-cache, no-store, must-revalidate");
Header("Pragma: no-cache");
readfile($filename);
exit;
?>

Aber was ist hier falsch? Es passier leider gar nix! Die Variable wird richtig übergeben! Liegt also aufjedenfall am Script.

Für jede Hilfe, schonmal en DANKE im Voraus :)
 
Zuletzt bearbeitet:
Ja, jetzt geht´s. Das Downloadfenster öffnet sich und man kann das
entsprechende Bild herunterladen. :)
Aber leider ist die Datei nach dem herunterladen leer! :(
 
Hallo!
also ich hab jetzt nochmal in nem Download-Script geschaut, dass bei mir einwandfrei läuft. Da habe ich das so gemacht:
PHP:
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".basename($datei).";");
header("Content-Length: ".filesize($datei));
readfile($datei);
Vielleicht testest Du das mal. Hast Du das Script auf nem Webserver liegen, oder testest Du lokal? Bei mir ging nämlich letzteres auch nicht, bis ichs dann hochgeladen hab.
 
Die Mime-Typ heißt „application/octet-stream“ und nicht „octet/stream“.
Mein Vorschlag:
PHP:
<?php

	if( !is_readable($_GET['PictPath']) ) {
		header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
		exit;
	}

	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename="'.basename($_GET['PictPath']).'"');
	header('Content-Length: '.filesize($_GET['PictPath']));
	header('Expires: 0');
	header('Cache-Control: no-cache, no-store, must-revalidate');
	header('Pragma: no-cache');
	readfile($_GET['PictPath']);
	exit;

?>
Du solltest übrigens die Benutzereingaben noch weiter validieren, damit beispielsweise nicht unerlaubte Dateien heruntergeladen werden.
 
Klar, kann der Browser mit dem gesendeten Mime-Typ nichts anfangen, wird die Datei heruntergeladen.
 
Zurück