PHP Download - Dateigröße im Header

d1ng0d0gt0r

Mitglied
Hi @ all,

Ich versuche nun seit längerem mit folgendem Code eine Datei aus einem .htaccess geschütztem Verzeichnis herunterzuladen.

Soweit klappt auch alles nur wird beim download nicht die Dateigröße an den Header weitergegeben dort steht dann immer röße Unbekannt und der Downloadstatus wird nicht angezeigt. Woran könnte das liegen?

PHP:
<?php
	$download = $_GET['download'];
	$filename = basename($download);

		header("Content-Type: application/octet-stream");
		header("Content-Disposition: attachment; filename=\"$filename\"");
		header("Content-Transfer-Encoding: binary");
		header("Accept-Ranges: bytes");
		header('Content-Length: '.filesize("$download"));
		header("Last-Modified: " . gmdate("D, d M Y H:i:s", filemtime("$download")) . " GMT", true, 200);
		
	readfile("protected/".$download);
?>

M.f.G Marcel
 
Zuletzt bearbeitet:
es könnte vielleicht an dieser Zeile liegen:
PHP:
        header('Content-Length: '.filesize("$download"));
Versuch mal, einfach nur
PHP:
filesize($download)
zu machen, vielleicht machen die Anführungszeichen das irgendwie kaputt!
Ich hoffe das hat dir weitergeholfen!
 
Zuletzt bearbeitet:
Bitte.
Mir passieren auch dauernd solche nervigen Sachen, wie z.B. ich benutze einmal $bla = $_GET['msg'] und einmal $msg, und bei RegisterGlobals = On ist $bla und $msg das gleiche, und dann funktioniert das ganze Script nicht mehr! Und das doofe ist: auf manchen Servern ist RegisterGlobals off, und dann geht es auf ein mal...
 
OK doch net so einfach! Er zeigt mir jetzt zwar die Dateigröße an, aber NUR bei Dateien unter 10KB! Woran liegt denn das jetzt schon wieder? Weil ich meine bei ner Dateigröße von 100MB ist es nicht so toll wenn der Status nicht angezeigt werden kann weil die Dateigröße nicht im Header übergeben wurde!
 
OK leute hat sich erledigt! Ich hätte die Dateigröße ersteinmal vorher in einer Variablen speichern müssen! So gehts jetzt!
 
Zuletzt bearbeitet:
Wenn sich die Datei im „protected“-Verzeichnis befindet, musst du natürlich auch den korrekten Pfad zur Datei nehmen.
 
Zurück