So verwenden Sie PHP, um einen Dateidownload zu erzwingen

Der Content-Disposition-Header überschreibt die Inline-Display-Funktion des Browsers

Da die meisten modernen Browser PDF- und Mediendateien inline anzeigen, verwenden Sie die Programmiersprache PHP – mit der Sie die ändern können HTTP Kopfzeilen von Dateien, die Sie schreiben – um den Browser zu zwingen, einen bestimmten Dateityp herunterzuladen, anstatt ihn anzuzeigen.





Sie benötigen PHP auf dem Webserver, auf dem Ihre Dateien gehostet werden, eine herunterzuladende Datei und die Mime Typ der betreffenden Datei.

So verwenden Sie PHP, um das Herunterladen einer Datei zu erzwingen

Glasfaser-Breitband

John Lamb/Getty Images



Dieser Vorgang erfordert zwei getrennte Schritte. Zuerst erstellen Sie eine PHP-Datei, die die Datei regelt, die Sie schützen möchten, und fügen dann einen Verweis auf diese PHP-Datei in den HTML-Code der Seite ein, auf der sie angezeigt wird.

Nachdem Sie eine Datei auf den Server hochgeladen haben, erstellen Sie ein PHP-Dokument in einem Texteditor. Wenn Sie z. B. zwingen möchten Beispiel.pdf Um herunterzuladen, anstatt Inline anzuzeigen, erstellen Sie ein Skript wie dieses:



|_+_|

Die Inhaltstyp-Referenz in PHP ist wichtig – es ist der MIME-Typ der Datei, die Sie schützen. Wenn Sie beispielsweise stattdessen eine MP3-Datei gespeichert haben, müssen Sie sie ersetzen Bewerbung/pdf mit Ton/mpeg .

Es sollte sein keine Leerzeichen oder Wagenrückläufe irgendwo in der Datei (außer nach einem Semikolon). Leere Zeilen führen dazu, dass PHP standardmäßig den MIME-Typ von verwendet text/html und Ihre Datei wird nicht heruntergeladen.

Speichern Sie die PHP-Datei am selben Ort wie Ihre HTML-Seiten. Ändern Sie dann den Link der Seite zum PDF wie folgt:

|_+_|

Überlegungen

Zwei wichtige Erwägungen bestimmen dieses Verfahren. Erstens, wenn jemand den direkten Link zur PDF-Datei entdeckt hat, kann er oder sie direkt darauf zugreifen, ohne dass das PHP in die Quere kommt. Zweitens benötigen Sie einen PHP-Schutz für jede Datei, die Sie mit diesem schnellen und einfachen Ansatz schützen möchten. Um mehrere Dateien auf diese Weise zu schützen, ist es sinnvoll, der geschützten Datei und der PHP-Datei denselben Namen zu geben, der sich nur in der Endung unterscheidet, um alles übersichtlich zu halten.