So laden Sie eine Datei in PHP herunter

How Download File Php



Im Allgemeinen ist kein PHP-Skript erforderlich, um eine Datei mit den Erweiterungen herunterzuladen exe und Postleitzahl . Wenn der Dateispeicherort dieses Dateityps im href Attribut des Ankerelements, dann wird die Datei automatisch heruntergeladen, wenn der Benutzer auf den Download-Link klickt. Einige Dateien, wie z Bild Dateien, PDF Dateien, Text Dateien, CSV Dateien usw. werden nicht automatisch heruntergeladen, sondern im Browser geöffnet, wenn der Benutzer auf den Download-Link klickt. Diese Dateien können zwangsweise in PHP heruntergeladen werden mit die Readfile() Funktion, die nicht automatisch heruntergeladen wird. Dieses Tutorial zeigt Ihnen, wie Sie jede Datei mit einem PHP-Skript zwangsweise herunterladen.

Download-Links prüfen

Es wurde bereits erwähnt, dass Postleitzahl und exe Dateien werden automatisch heruntergeladen, 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 Dateitypen herunterzuladen. Zu diesen Dateitypen gehören TEXT-, ZIP-, PDF- und JPG-Dateien.







Download.html



< html >
< Kopf >
< Titel >Dateien herunterladen</ Titel >
</ Kopf >
< Karosserie >
< P >< zu href='abc.txt'>TEXT-Datei herunterladen</ zu ></ P >
< P >< zu href='horizont.zip'>ZIP-Datei herunterladen</ zu ></ P >
< P >< zu href='vortrag.pdf'>PDF-Datei herunterladen</ zu ></ P >
< P >< zu href='rose.jpg'>JPG-Datei herunterladen</ zu ></ P >
</ Karosserie >
</ html >

Ausgabe
Das folgende Dialogfeld wird angezeigt, um die Datei herunterzuladen, nachdem Sie auf den Link zur ZIP-Datei geklickt haben. 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 dargestellt. Sie müssen die Datei speichern, um eine Kopie der Image-Datei auf dem lokalen Laufwerk zu erstellen. Ebenso wird beim Anklicken von PDF- und TEXT-Datei-Links 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 herunterzuladen Readfile() Funktion.





Datei mit der Funktion readfile() herunterladen

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



Syntax
int readfile ( string $filename [, bool $use_include_path = false [, Ressource $context ]] )

Diese Funktion kann drei Argumente annehmen. Das erste Argument ist obligatorisch, die anderen beiden 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 false und wird auf true gesetzt, wenn der Dateiname mit dem Pfad im ersten Argument verwendet wird. Das dritte Argument, $kontext , wird verwendet, um die Kontextstreamressource anzugeben. Diese Funktion gibt die Anzahl der Bytes zurück, die aus der im ersten Argument erwähnten Datei gelesen wurden. Die Verwendung dieser Funktion wird in den folgenden zwei Beispielen gezeigt.

Beispiel 1: Datei mit Dateinamen herunterladen

In diesem Beispiel erstellen wir eine HTML-Datei mit folgendem Code, wobei der Dateiname als Parameter der URL mit dem Namen übergeben wird Weg , und der Wert dieses Parameters wird an die PHP-Datei namens . übergeben download.php .

download2.html

< html >
< Kopf >
< Titel >Dateien herunterladen</ Titel >
</ Kopf >
< Karosserie >
< P >< zu href='download.php?path=abc.txt'>HerunterladenTEXTDatei</ zu ></ P >
< P >< zu href='download.php?path=horizon.zip'>ZIP-Datei herunterladen</ zu ></ P >
< P >< zu href='download.php?path=lecture.pdf'>PDF-Datei herunterladen</ zu ></ P >
< P >< zu href='download.php?path=rose.jpg'>JPG-Datei herunterladen</ zu ></ P >
</ Karosserie >
</ html >

Wir erstellen die PHP-Datei mit dem folgenden Code, um die Datei zwangsweise herunterzuladen. Hier das gegangen) Funktion wird verwendet, um zu überprüfen, ob die $_GET[‘Pfad’] ist definiert. Wenn die Variable definiert ist, wird die Datei existiert() Funktion wird verwendet, um zu überprüfen, ob die Datei auf dem Server vorhanden ist. Als nächstes die Header() Funktion wird verwendet, um die erforderlichen Header-Informationen einzustellen, bevor Sie die Readfile() Funktion. Die Basisname() Funktion wird verwendet, um den Dateinamen abzurufen, und die Dateigröße() Funktion wird verwendet, um die Größe der Datei in Bytes auszulesen, die im sich öffnenden Dialogfeld zum Herunterladen der Datei angezeigt wird. Die spülen() Funktion wird verwendet, um den Ausgabepuffer zu löschen. Die Readfile() Die Funktion wird hier nur mit dem Dateinamen verwendet.

download.php



wenn( gegangen ($_GET['Weg']))
{
// Dateinamen lesen
$Dateiname = $_GET['Weg'];
//Überprüfen, ob die Datei existiert oder nicht
wenn( Datei existiert ($Dateiname)) {

//Header-Informationen definieren
Header ('Inhaltsbeschreibung: Dateiübertragung');
Header ('Inhaltstyp: Anwendung/Oktett-Stream');
Header ('Cache-Kontrolle: kein Cache, muss erneut validiert werden');
Header ('Läuft ab: 0');
Header ('Inhalt-Disposition: Anhang; Datei. Basisname ($Dateiname).''');
Header ('Inhaltslänge: ' . Dateigröße ($Dateiname));
Header ('Pragma: öffentlich');

// Systemausgabepuffer löschen
spülen ();

//Lesen Sie die Größe der Datei
Readfile ($Dateiname);

//Beende das Skript
die ();
}
anders{
rauswerfen 'Die Datei existiert nicht.';
}
}
anders
rauswerfen 'Dateiname ist nicht definiert.'
?>

Ausgabe
Die folgende Ausgabe erscheint, nachdem Sie auf den Download-Link der Bilddatei geklickt haben. Die Dateigröße der rose.jpg Bild ist 27,2 KB , wie im Dialogfeld angezeigt. Sie können die Datei herunterladen, indem Sie die Datei speichern Radioknopf und drücken Sie die OK Taste.

Beispiel 2: Datei mit Dateipfad herunterladen

Wenn die Datei am angegebenen Dateispeicherort vorhanden ist, muss der Dateipfad in der URL angegeben werden. In diesem Beispiel erstellen wir eine HTML-Datei mit dem folgenden Code, der den Dateinamen mit dem Dateipfad übergibt:

download3.html

< html >
< Kopf >
< Titel >Dateien herunterladen</ Titel >
</ Kopf >
< Karosserie >
< P >< zu href='download.php?path=downloads/lecture.pdf'>PDF-Datei herunterladen</ zu ></ P >
< P >< zu href='download2.php?path=downloads/rose.jpg'>JPG-Datei herunterladen</ zu ></ P >
</ Karosserie >
</ html >

Wir erstellen eine PHP-Datei mit dem folgenden Code, um eine Datei aus dem Dateipfad herunterzuladen. Der PHP-Code im vorherigen Beispiel wird leicht modifiziert, um die Datei aus dem angegebenen Pfad herunterzuladen. Die clearstatecache() Funktion wird verwendet, um den zuvor gespeicherten Cache zu löschen. In der werden zwei Argumente verwendet Readfile() Funktion.

download2.php


wenn( gegangen ($_GET['Weg']))
{
//Lesen Sie die URL
$url = $_GET['Weg'];

// Cache leeren
statcache löschen ();

//Überprüfe, ob der Dateipfad existiert oder nicht
wenn( Datei existiert ($url)) {

//Header-Informationen definieren
Header ('Inhaltsbeschreibung: Dateiübertragung');
Header ('Inhaltstyp: Anwendung/Oktett-Stream');
Header ('Inhalt-Disposition: Anhang; Datei. Basisname ($url).''');
Header ('Inhaltslänge: ' . Dateigröße ($url));
Header ('Pragma: öffentlich');

// Systemausgabepuffer löschen
spülen ();

//Lesen Sie die Größe der Datei
Readfile ($url,wahr);

//Beende das Skript
die ();
}
anders{
rauswerfen 'Dateipfad existiert nicht.';
}
}
rauswerfen 'Dateipfad ist nicht definiert.'

?>

Ausgabe
Nach Anklicken des Download-Links der PDF-Datei erscheint die folgende Ausgabe.

Videoanleitung

Abschluss

Dieser Artikel bietet eine einfache Möglichkeit, jede Datei mit dem PHP-Skript zwangsweise herunterzuladen, um den Lesern zu helfen, die Download-Funktion in ihr Skript einzufügen.