Hvordan laste ned en fil i PHP

Hvordan laste ned en fil i PHP
Generelt kreves det ikke noe PHP -skript for å laste ned en fil med utvidelsene EXE og glidelås. Hvis filplasseringen til denne typen fil er satt i href Attributt til ankerelementet, deretter laster filen automatisk ned når brukeren klikker på nedlastingskoblingen. Noen filer, for eksempel bilde filer, PDF filer, tekst filer, CSV Filer osv., Ikke last ned automatisk, og åpner i stedet i nettleseren når brukeren klikker på nedlastingskoblingen. Disse filene kan lastes ned tvang i PHP ved hjelp av ReadFile () funksjon som ikke laster ned automatisk. Denne opplæringen viser deg hvordan du kan laste ned hvilken som helst fil ved hjelp av PHP -skript.

Sjekk nedlastingskoblinger

Det ble tidligere nevnt det glidelås og EXE Filer laster ned automatisk, uten å bruke PHP -skript. Opprett først en HTML -fil med følgende kode. Her er de fire ankerelementene definert for å laste ned de fire filtypene. Disse filtypene inkluderer tekst-, zip-, PDF- og JPG -filer.

nedlasting.html



Last ned filer


Last ned tekstfil


Last ned ZIP -fil


Last ned PDF -fil


Last ned JPG -fil



Produksjon
Følgende dialogboks ser ut til å laste ned filen etter å ha klikket på Zip -fillenken. Brukeren kan deretter laste ned filen eller åpne filen i Archive Manager.


Hvis du klikker på bildefilen, åpnes bildet automatisk i nettleseren, som vist i følgende utdata. Du må lagre filen for å lage en kopi av bildefilen i den lokale stasjonen. På samme måte, når du klikker på PDF og tekstfil -koblinger, vil innholdet i filen bli åpnet i nettleseren uten å laste ned filen. Løsningen på dette problemet er å laste ned filen med tvang ved å bruke den innebygde PHP ReadFile () funksjon.

Last ned fil ved hjelp av ReadFile () -funksjonen

De ReadFile () Funksjon brukes i PHP -skript for å laste ned en fil med den nåværende plasseringen, eller filen med filstien. Syntaksen til denne funksjonen er gitt nedenfor.

Syntaks
int readfile (String $ filnavn [, bool $ use_include_path = falsk [, ressurs $ kontekst]])

Denne funksjonen kan ta tre argumenter. Det første argumentet er obligatorisk, og de to andre argumentene er valgfrie. Det første argumentet, $ filnavn, lagrer filnavnet eller filnavnet med banen som vil laste ned. Standardverdien for den andre parameteren, $ use_include_path, er falsk og vil bli satt til sann hvis filnavnet med banen brukes i det første argumentet. Det tredje argumentet, $ kontekst, brukes til å indikere kontekststrømressursen. Denne funksjonen returnerer antall byte som er lest fra filen som er nevnt i det første argumentet. Bruken av denne funksjonen vises i følgende to eksempler.

Eksempel 1: Last ned fil med filnavn

I dette eksemplet vil vi opprette en HTML -fil med følgende kode, der filnavnet vil bli bestått som en parameter for URL -en som er navngitt sti, og verdien av denne parameteren vil bli sendt til PHP -filen som er navngitt nedlasting.PHP.

Last ned2.html



Last ned filer


Last ned tekstfil


Last ned ZIP -fil


Last ned PDF -fil


Last ned JPG -fil



Vi oppretter PHP -filen med følgende kode for å laste ned filen med tvang. Her, The Isset () funksjon brukes til å sjekke om $ _GET ['PATH'] er definert. Hvis variabelen er definert, er Filen eksisterer() Funksjon brukes til å sjekke om filen eksisterer på serveren. Neste, The Overskrift() funksjon brukes til å angi nødvendig overskriftsinformasjon før du bruker ReadFile () funksjon. De basename () funksjon brukes til å hente filnavnet, og filstørrelse() Funksjon brukes til å lese størrelsen på filen i byte, som vises i åpningsdialogboksen for å laste ned filen. De Flush () Funksjon brukes til å tømme utgangsbufferen. De ReadFile () Funksjon brukes bare med filnavnet, her.

nedlasting.PHP

if (isset ($ _ få ['sti']))

// Les filnavnet
$ filnavn = $ _get ['sti'];
// Sjekk filen eksisterer eller ikke
if (file_exists ($ filnavn))
// definere overskriftsinformasjon
header ('innholdsbeskrivelse: filoverføring');
Header ('Content-Type: Application/Octet-Stream');
Header ("Cache-Control: No-Cache, Must-Revalidate");
header ("utløper: 0");
header ('innholds-disposisjon: vedlegg; filnavn = "'.basename ($ filnavn).'"');
Header ('Innholdslengde:' . FilSize ($ filnavn));
header ('pragma: offentlig');
// Fjern systemutgangsbuffer
Flush ();
// Les størrelsen på filen
readfile ($ filnavn);
// avslutt fra skriptet
dø();

ellers
Echo "-filen eksisterer ikke.";


ellers
ekko "filnavn er ikke definert.""
?>

Produksjon
Følgende utdata vises etter å ha klikket nedlastingskoblingen til bildefilen. Filstørrelsen på rose.jpg Bilde er 27.2 kb, Som vist i dialogboksen. Du kan laste ned filen ved å velge Lagre filen alternativknapp og trykke på Ok knapp.

Eksempel 2: Last ned fil med filsti

Hvis filen eksisterer på det gitte filstedet, vil filstien være pålagt å nevne i URL -en. I dette eksemplet vil vi opprette en HTML -fil med følgende kode, som vil passere filnavnet med filstien:

Last ned3.html



Last ned filer


Last ned PDF -fil


Last ned JPG -fil



Vi oppretter en PHP -fil med følgende kode for å laste ned en fil fra filstien. PHP -koden i forrige eksempel vil bli endret litt for å laste ned filen fra den gitte banen. De ClearStateCache () Funksjon brukes til å tømme hurtigbufferen som tidligere ble lagret. To argumenter brukes i ReadFile () funksjon.

Last ned2.PHP

if (isset ($ _ få ['sti']))

// Les nettadressen
$ url = $ _get ['sti'];
// Fjern hurtigbufferen
clearStatCache ();
// Sjekk filstien eksisterer eller ikke
if (file_exists ($ url))
// definere overskriftsinformasjon
header ('innholdsbeskrivelse: filoverføring');
Header ('Content-Type: Application/Octet-Stream');
header ('innholds-disposisjon: vedlegg; filnavn = "'.basename ($ url).'"');
Header ('Innholdslengde:' . FilSize ($ url));
header ('pragma: offentlig');
// Fjern systemutgangsbuffer
Flush ();
// Les størrelsen på filen
readfile ($ url, true);
// avslutt fra skriptet
dø();

ellers
ekko "filsti eksisterer ikke.";


ekko "filsti er ikke definert.""
?>

Produksjon
Etter at nedlastingskoblingen til PDF -filen er klikket, vises følgende utdata.

Videoopplæring

Konklusjon

Denne artikkelen ga en enkel måte å tvangslede en hvilken som helst fil ved hjelp av PHP -skriptet, for å hjelpe leserne med å legge til nedlastingsfunksjonen i skriptet.