Sjekk nedlastingskoblinger
Det ble tidligere nevnt det glidelås og exe filer lastes 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.
Download.html
< html >
< hode >
< tittel >Last ned filer</ tittel >
</ hode >
< kropp >
< s >< til href='abc.txt'>Last ned TEXT -fil</ til ></ s >
< s >< til href='horizon.zip'>Last ned ZIP -fil</ til ></ s >
< s >< til href='forelesning.pdf'>Last ned PDF -fil</ til ></ s >
< s >< til href='rose.jpg'>Last ned JPG -fil</ til ></ s >
</ kropp >
</ html >
Produksjon
Følgende dialogboks vises for å laste ned filen etter å ha klikket på zip -filkoblingen. Brukeren kan deretter laste ned filen eller åpne filen i arkivbehandling.
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 TEXT -filkoblinger, åpnes innholdet i filen i nettleseren uten å laste ned filen. Løsningen på dette problemet er å laste ned filen med tvang ved hjelp av den innebygde PHP readfile () funksjon.
Last ned fil ved hjelp av funksjonen readfile ()
De readfile () -funksjonen brukes i PHP -skript for å tvinge ned alle filer med gjeldende plassering, eller filen med filbanen. Syntaksen til denne funksjonen er gitt nedenfor.
Syntaks
int readfile (streng $ filnavn [, bool $ use_include_path = false [, 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 skal lastes ned. Standardverdien til den andre parameteren, $ use_include_path , er usant og blir satt til true 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 er vist i de følgende to eksemplene.
Eksempel 1: Last ned fil med filnavn
I dette eksemplet vil vi opprette en HTML -fil med følgende kode, der filnavnet blir sendt som en parameter for URL -adressen som heter sti , og verdien av denne parameteren vil bli overført til PHP -filen som heter nedlasting.php .
nedlasting2.html
< html >< hode >
< tittel > Last ned filer</ tittel >
</ hode >
< kropp >
< s >< til href='download.php? path = abc.txt'> Last nedTEKSTfil</ til ></ s >
< s >< til href='download.php? path = horizon.zip'> Last ned ZIP -fil</ til ></ s >
< s >< til href='download.php? path = lecture.pdf'> Last ned PDF -fil</ til ></ s >
< s >< til href='download.php? path = rose.jpg'> Last ned JPG -fil</ til ></ s >
</ kropp >
</ html >
Vi lager PHP -filen med følgende kode for å laste ned filen med makt. Her, den borte) funksjonen brukes til å kontrollere om $ _GET ['sti'] er definert. Hvis variabelen er definert, vil Filen eksisterer() funksjonen brukes til å kontrollere om filen finnes på serveren. Deretter vil Overskrift() funksjonen brukes til å angi nødvendig overskriftsinformasjon før du bruker readfile () funksjon. De basenavn () funksjonen brukes til å hente filnavnet og filstørrelse() funksjonen brukes til å lese størrelsen på filen i byte, som vil bli vist i dialogboksen for åpning for å laste ned filen. De flush () funksjonen brukes til å tømme utdatabufferen. De readfile () funksjonen brukes bare med filnavnet, her.
nedlasting.php
hvis( borte ($ _GET['sti']))
{
// Les filnavnet
$ filnavn = $ _GET['sti'];
// Kontroller at filen finnes eller ikke
hvis( Filen eksisterer ($ filnavn)) {
// Definer topptekstinformasjon
Overskrift ('Innholdsbeskrivelse: filoverføring');
Overskrift ('Innholdstype: applikasjon/oktettstrøm');
Overskrift ('Cache-Control: no-cache, must-revalidate');
Overskrift ('Utløper: 0');
Overskrift ('Innhold-disposisjon: vedlegg; filnavn = ''. basenavn ($ filnavn).'' ');
Overskrift ('Innholdslengde:' . filstørrelse ($ filnavn));
Overskrift ('Pragma: offentlig');
// Slett buffer for systemutgang
flush ();
// Les størrelsen på filen
readfile ($ filnavn);
// Slutt fra manuset
de ();
}
ellers{
kastet ut 'Filen eksisterer ikke.';
}
}
ellers
kastet ut 'Filnavn er ikke definert.'
?>
Produksjon
Følgende utdata vises etter at du har klikket på nedlastingskoblingen til bildefilen. Filstørrelsen på rose.jpg bildet er 27,2 KB , som vist i dialogboksen. Du kan laste ned filen ved å velge Lagre filen radioknappen og trykk på OK knapp.
Eksempel 2: Last ned fil med filbane
Hvis filen finnes på den angitte filplasseringen, må filbanen nevnes i URL -adressen. I dette eksemplet vil vi lage en HTML -fil med følgende kode, som vil passere filnavnet med filbanen:
last ned3.html
< html >< hode >
< tittel >Last ned filer</ tittel >
</ hode >
< kropp >
< s >< til href='download.php? path = downloads/lecture.pdf'>Last ned PDF -fil</ til ></ s >
< s >< til href='download2.php? path = downloads/rose.jpg'>Last ned JPG -fil</ til ></ s >
</ kropp >
</ html >
Vi lager en PHP -fil med følgende kode for å laste ned en fil fra filbanen. PHP -koden i forrige eksempel vil bli litt endret for å laste ned filen fra den gitte banen. De clearstatecache () funksjonen brukes til å slette hurtigbufferen som tidligere ble lagret. To argumenter brukes i readfile () funksjon.
nedlasting2.php
hvis( borte ($ _GET['sti']))
{
// Les nettadressen
$ url = $ _GET['sti'];
// Tøm bufferen
clearstatcache ();
// Kontroller at filbanen finnes eller ikke
hvis( Filen eksisterer ($ url)) {
// Definer topptekstinformasjon
Overskrift ('Innholdsbeskrivelse: filoverføring');
Overskrift ('Innholdstype: applikasjon/oktettstrøm');
Overskrift ('Innhold-disposisjon: vedlegg; filnavn = ''. basenavn ($ url).'' ');
Overskrift ('Innholdslengde:' . filstørrelse ($ url));
Overskrift ('Pragma: offentlig');
// Slett buffer for systemutgang
flush ();
// Les størrelsen på filen
readfile ($ url,ekte);
// Slutt fra manuset
de ();
}
ellers{
kastet ut 'Filsti finnes ikke.';
}
}
kastet ut 'Filbanen er ikke definert.'
?>
Produksjon
Etter at nedlastningskoblingen til PDF -filen er klikket, vises følgende utdata.
Videoopplæring
Konklusjon
Denne artikkelen ga en enkel måte å laste ned filer med PHP -scriptet med makt, for å hjelpe leserne med å legge til nedlastingsfunksjonen i skriptet.