Zurück zur Übersicht

PHP: Einfacher Datei-Download

#Tutorials #PHP

Möchte man eine Datei zum Download anbieten und die Datei nicht direkt verlinken, so kann man mit PHP die Datei an den Benutzer senden. Das hat mehrere Vorteile. So werden beispielsweise PDF Dateien auch heruntergeladen und nicht direkt im Browser geöffnet.

Die folgende kleine Funktion nimmt einen Pfad zu einer Datei entgegen und schickt diese dann via readfile an den Benutzer. 

function sendFileAndExit($filename) {
  if(file_exists($filename)){

    //Get file type and set it as Content Type
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    header('Content-Type: ' . finfo_file($finfo, $filename));
    finfo_close($finfo);

    //Use Content-Disposition: attachment to specify the filename
    header('Content-Disposition: attachment; filename='.basename($filename));

    //No cache
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');

    //Define file size
    header('Content-Length: ' . filesize($filename));

    ob_clean();
    flush();
    readfile($filename);
    exit;
  }
}

// Benutzung
sendFileAndExit('/home/meine-datei.pdf');

Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.