Problem mit Download erzwingen

proloser

Erfahrenes Mitglied
Hallo,

ich möchte gerne den Download von verschiedenen Dateien erzwingen, das mach ich so:

PHP:
header("Content-Type: application/octet-stream");    
header("Content-Disposition: attachment; filename=test.zip");

readfile("test.zip");

Das funktioniert wenn über dem Header kein HTML ausgeführt wird.

Gibt es eine Möglichkeit den Download auch mit HTML im Header richtig durchzuführen?
 
Vor dem Befehl [phpf]header[/phpf] darfst du überhaupt kein Zeichen ausgeben!
D.h. weder HTML noch andere Dateien.

Allerdings könntest du die Ausgabepufferung benutzen:
PHP:
<?php

  ob_start();

?>
<!doctype html>
<html>
<!-- ... -->

<?php
  if ($Must_Download_File)  
  {
    ob_clean();
    header("Content-Type: application/zip");     
    header("Content-Disposition: attachment; filename=test.zip"); 
 
    readfile("test.zip");   
  }
  else
  {
    ob_end_flush();
  }
?>
Übrigens gibt es auch ein speziellen Content-Type für ZIP (siehe Wikipedia), den habe ich schon oben eingefügt.
 
Mit "ob_start" und "ob_end_flush" hab ich es bereits versucht. Jetzt hab ich noch wie du beschrieben hast "ob_clean" hinzugefügt. Aber die Datei, die heruntergeladen wird, enthält nur den HTML Code von meinem Header.

EDIT: Sorry ich hatte im Pfad ein Fehler. Funktioniert super, danke!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück