PHP - Dateien als Download anbieten

Um in PHP Dateien dem User als Download zur Verfügung zu stellen, muss der header des Scripts geändert werden:

Der Aufruf würde bspw. über die folgende URL erfolgen: http://www.domain.com/getfile.php?file=meindownload.zip

Für binäre Daten würde man dann folgenden Code verwenden:

<?php
if (isset($_GET["file"])) {
  
$file_name = $_GET["file"];
   if (
file_exists($file_name)) {
    
header(”Content-type: application/x-download”);
    
header(”Content-Disposition: attachment; filename=$file_name”);
    
header(”Content-Transfer-Encoding: binary”);
    
header(’Content-Length: . filesize($file_name));
    
ob_clean();
    
flush();
    
readfile($file_name);
   }
}
?>

Bei binären Daten ist es wichtig ob_clean() und flush() zu verwenden, da es sonst vorkommen kann, dass die Daten nicht korrekt übermittelt werden..