So laden Sie eine Datei in PHP herunter

So laden Sie eine Datei in PHP herunter
Im Allgemeinen ist kein PHP -Skript erforderlich, um eine Datei mit den Erweiterungen herunterzuladen exe Und Reißverschluss. Wenn der Dateispeicherort dieser Dateityp in der festgelegt ist href Attribut des Ankerelements, dann lädt die Datei automatisch herunter, wenn der Benutzer auf den Download -Link klickt. Einige Dateien wie z Bild Dateien, PDF Dateien, Text Dateien, CSV Dateien usw., Laden Sie nicht automatisch herunter und öffnen Sie stattdessen im Browser, wenn der Benutzer auf den Download -Link klickt. Diese Dateien können gewaltsam in PHP verwendet werden Die ReadFile () Funktion, die nicht automatisch heruntergeladen wird. Dieses Tutorial zeigt Ihnen, wie Sie eine Datei mit PHP -Skript gewaltsam herunterladen können.

Überprüfen Sie die Download -Links

Es wurde zuvor erwähnt, dass Reißverschluss Und exe Dateien automatisch herunterladen, ohne PHP -Skript zu verwenden. Erstellen Sie zunächst eine HTML -Datei mit dem folgenden Code. Hier werden die vier Ankerelemente definiert, um die vier Arten von Dateien herunterzuladen. Diese Dateitypen umfassen Text-, ZIP-, PDF- und JPG -Dateien.

Herunterladen.html



Dateien herunterladen


Textdatei herunterladen


Download der ZIP -Datei


PDF -Datei herunterladen


Laden Sie die JPG -Datei herunter



Ausgang
Das folgende Dialogfeld wird angezeigt, um die Datei nach dem Klicken auf den Link zur ZIP -Datei herunterzuladen. Der Benutzer kann dann die Datei herunterladen oder die Datei im Archivmanager öffnen.


Wenn Sie auf die Bilddatei klicken, wird das Bild automatisch im Browser geöffnet, wie in der folgenden Ausgabe gezeigt. Sie müssen die Datei speichern, um eine Kopie der Bilddatei im lokalen Laufwerk zu erstellen. Wenn Sie auf PDF- und Textdatei -Links klicken, wird der Inhalt der Datei im Browser geöffnet, ohne die Datei herunterzuladen. Die Lösung für dieses Problem besteht darin, die Datei mit dem integrierten PHP nach und nach herunterzuladen ReadFile () Funktion.

Laden Sie die Datei mit ReadFile () -Funktion herunter

Der ReadFile () Die Funktion wird im PHP -Skript verwendet, um eine Datei des aktuellen Speicherorts oder die Datei mit dem Dateipfad gewaltsam herunterzuladen. Die Syntax dieser Funktion ist unten angegeben.

Syntax
int readFile (String $ Dateiname [, bool $ use_include_path = false [, Ressource $ context]))

Diese Funktion kann drei Argumente erfolgen. Das erste Argument ist obligatorisch und die beiden anderen Argumente sind optional. Das erste Argument, $ Dateiname, Speichert den Dateinamen oder den Dateinamen mit dem Pfad, der heruntergeladen wird. Der Standardwert des zweiten Parameters, $ use_include_path, ist falsch und wird auf True gesetzt, wenn der Dateiname mit dem Pfad im ersten Argument verwendet wird. Das dritte Argument, $ Kontext, wird verwendet, um die Kontextstromressource anzuzeigen. Diese Funktion gibt die Anzahl der Bytes zurück, die aus der im ersten Argument genannten Datei gelesen wurden. Die Verwendungen dieser Funktion sind in den folgenden zwei Beispielen gezeigt.

Beispiel 1: Datei mit Dateiname herunterladen

In diesem Beispiel erstellen wir eine HTML -Datei mit dem folgenden Code, in dem der Dateiname als Parameter der URL übergeben wird Weg, und der Wert dieses Parameters wird an die benannte PHP -Datei übergeben herunterladen.Php.

Download2.html



Dateien herunterladen


Textdatei herunterladen


Download der ZIP -Datei


PDF -Datei herunterladen


Laden Sie die JPG -Datei herunter



Wir erstellen die PHP -Datei mit dem folgenden Code, um die Datei gewaltsam herunterzuladen. Hier das isset () Funktion wird verwendet, um zu prüfen, ob die $ _Get ['Path'] ist definiert. Wenn die Variable definiert ist, die Datei existiert() Die Funktion wird verwendet, um zu überprüfen, ob die Datei auf dem Server vorhanden ist. Als nächstes die Header() Die Funktion wird verwendet, um die erforderlichen Headerinformationen festzulegen, bevor die Verwendung der verwendet wird ReadFile () Funktion. Der Grundname () Funktion wird verwendet, um den Dateinamen abzurufen, und die Dateigröße() Die Funktion wird verwendet, um die Größe der Datei in Bytes zu lesen, die im Dialogfeld Öffnen angezeigt werden, um die Datei herunterzuladen. Der spülen() Funktion wird verwendet, um den Ausgangspuffer zu löschen. Der ReadFile () Die Funktion wird hier nur mit dem Dateinamen verwendet.

herunterladen.Php

if (isset ($ _ get ['path'])))

// Lesen Sie den Dateinamen
$ Dateiname = $ _get ['path'];
// Überprüfen Sie, ob die Datei existiert oder nicht
if (file_exists ($ Dateiname))
// Headerinformationen definieren
Header ('Inhaltsbeschreibung: Dateiübertragung');
Header ('Inhaltstyp: Anwendung/Oktett-Stream');
Header ("Cache-Control: No-Cache, Must-Revalidate");
Header ("abläuft: 0");
Header ('Inhaltsdisposition: Anhang; Dateiname = "'.Grundname ($ Dateiname).'"');
Header ('Inhaltslänge:' . FileSize ($ Dateiname));
Header ('Pragma: öffentlich');
// Systemausgangspuffer löschen
spülen();
// Lesen Sie die Größe der Datei
ReadFile ($ Dateiname);
// Aus dem Skript enden
sterben();

anders
Die echo -Datei gibt es nicht.";


anders
Echo "Dateiname ist nicht definiert."
?>

Ausgang
Die folgende Ausgabe wird nach dem Klicken auf den Download -Link der Bilddatei angezeigt. Die Dateigröße der Rose.JPG Bild ist 27.2 kb, Wie im Dialogfeld gezeigt. Sie können die Datei herunterladen, indem Sie die auswählen Datei speichern Optionsknopf und Drücken der OK Taste.

Beispiel 2: Datei mit Dateipfad herunterladen

Wenn die Datei am angegebenen Dateiort vorhanden ist, muss der Dateipfad in der URL erwähnt werden. In diesem Beispiel erstellen wir eine HTML -Datei mit dem folgenden Code, der den Dateinamen mit dem Dateipfad übergeben wird:

Download3.html



Dateien herunterladen


PDF -Datei herunterladen


Laden Sie die JPG -Datei herunter



Wir erstellen eine PHP -Datei mit dem folgenden Code, um eine Datei aus dem Dateipfad herunterzuladen. Der PHP -Code im vorherigen Beispiel wird leicht geändert, um die Datei aus dem angegebenen Pfad herunterzuladen. Der ClearStatecache () Funktion wird verwendet, um den zuvor gespeicherten Cache zu löschen. Zwei Argumente werden in der verwendet ReadFile () Funktion.

Download2.Php

if (isset ($ _ get ['path'])))

// Lesen Sie die URL
$ url = $ _get ['path'];
// den Cache löschen
ClearStatcache ();
// Überprüfen Sie, ob der Dateipfad existiert oder nicht
if (file_exists ($ url))
// Headerinformationen definieren
Header ('Inhaltsbeschreibung: Dateiübertragung');
Header ('Inhaltstyp: Anwendung/Oktett-Stream');
Header ('Inhaltsdisposition: Anhang; Dateiname = "'.Grundname ($ URL).'"');
Header ('Inhaltslänge:' . FileSize ($ url));
Header ('Pragma: öffentlich');
// Systemausgangspuffer löschen
spülen();
// Lesen Sie die Größe der Datei
ReadFile ($ url, true);
// Aus dem Skript enden
sterben();

anders
Echo "Dateipfad existiert nicht.";


Echo "Dateipfad ist nicht definiert."
?>

Ausgang
Nachdem der Download -Link der PDF -Datei geklickt wurde, wird die folgende Ausgabe angezeigt.

Videoanleitung

Abschluss

Dieser Artikel bot eine einfache Möglichkeit, eine Datei mit dem PHP -Skript gewaltsam herunterzuladen, damit Leser die Download -Funktion in ihrem Skript hinzufügen können.