Kuinka ladata tiedosto PHP: ssä

How Download File Php

Yleensä PHP -komentosarjaa ei tarvita tiedostojen lataamiseen laajennuksilla exe ja postinumero . Jos tämän tyyppisen tiedoston sijainti on asetettu kohtaan href ankkurielementin määritteen, tiedosto ladataan automaattisesti, kun käyttäjä napsauttaa latauslinkkiä. Jotkut tiedostot, kuten kuva tiedostot, PDF tiedostot, teksti tiedostot, CSV tiedostoja jne., eivät lataa automaattisesti, vaan avautuvat selaimessa, kun käyttäjä napsauttaa latauslinkkiä. Nämä tiedostot voidaan ladata väkisin PHP: ssä käyttämällä lukutiedosto () toiminto, joka ei lataudu automaattisesti. Tämä opetusohjelma näyttää, kuinka voit ladata minkä tahansa tiedoston väkisin PHP -komentosarjan avulla.

Tarkista latauslinkit

Aikaisemmin mainittiin, että postinumero ja exe tiedostot latautuvat automaattisesti ilman PHP -komentosarjaa. Luo ensin HTML -tiedosto, jossa on seuraava koodi. Tässä neljä ankkurielementtiä määritetään lataamaan neljä tiedostotyyppiä. Näitä tiedostotyyppejä ovat TEXT-, ZIP-, PDF- ja JPG -tiedostot.



Lataa.html



< html >
< pää >
< otsikko >Lataa tiedostot</ otsikko >
</ pää >
< vartalo >
< s >< kohteeseen href='abc.txt'>Lataa TEXT -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='horizon.zip'>Lataa ZIP -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='luento.pdf'>Lataa PDF -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='rose.jpg'>Lataa JPG -tiedosto</ kohteeseen ></ s >
</ vartalo >
</ html >

Lähtö
Näyttöön tulee seuraava valintaikkuna tiedoston lataamista varten zip -tiedoston linkin napsauttamisen jälkeen. Käyttäjä voi sitten ladata tiedoston tai avata tiedoston arkistonhallinnassa.




Jos napsautat kuvatiedostoa, kuva avataan automaattisesti selaimessa seuraavan kuvan mukaisesti. Sinun on tallennettava tiedosto, jotta voit kopioida kuvatiedoston paikalliselle asemalle. Samalla tavalla, kun napsautat PDF- ja TEXT -tiedostojen linkkejä, tiedoston sisältö avataan selaimessa lataamatta tiedostoa. Ratkaisu tähän ongelmaan on ladata tiedosto väkisin sisäänrakennetun PHP: n avulla readfile () toiminto.

Lataa tiedosto Readfile () -toiminnon avulla

The readfile () -toimintoa käytetään PHP -skriptissä minkä tahansa nykyisen sijainnin tiedoston tai tiedoston polun sisältävän tiedoston pakolliseen lataamiseen. Tämän toiminnon syntaksi on esitetty alla.



Syntaksi
int readfile (merkkijono $ tiedostonimi [, bool $ use_include_path = false [, resource $ context]])

Tämä funktio voi kestää kolme argumenttia. Ensimmäinen argumentti on pakollinen ja kaksi muuta argumenttia ovat valinnaisia. Ensimmäinen argumentti, $ tiedostonimi , tallentaa tiedostonimen tai tiedostonimen ladattavan polun kanssa. Toisen parametrin oletusarvo, $ use_include_path , on epätosi ja asetetaan arvoon tosi, jos ensimmäisessä argumentissa käytetään polun sisältävää tiedostonimeä. Kolmas argumentti, $ -konteksti , käytetään osoittamaan kontekstivirtaresurssia. Tämä funktio palauttaa ensimmäisessä argumentissa mainitusta tiedostosta luettujen tavujen määrän. Tämän toiminnon käyttö on esitetty seuraavassa kahdessa esimerkissä.

Esimerkki 1: Lataa tiedosto tiedostonimellä

Tässä esimerkissä luomme HTML -tiedoston, jossa on seuraava koodi, jossa tiedostonimi välitetään parametrina URL -osoitteessa polku , ja tämän parametrin arvo välitetään PHP -tiedostoon nimeltä download.php .

lataa2.html

< html >
< pää >
< otsikko > Lataa tiedostot</ otsikko >
</ pää >
< vartalo >
< s >< kohteeseen href='download.php? path = abc.txt'> LataaTEKSTItiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='download.php? path = horizon.zip'> Lataa ZIP -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='download.php? path = luento.pdf'> Lataa PDF -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='download.php? path = rose.jpg'> Lataa JPG -tiedosto</ kohteeseen ></ s >
</ vartalo >
</ html >

Luomme PHP -tiedoston seuraavalla koodilla ladataksesi tiedoston väkisin. Tässä, mennyt) -toimintoa käytetään tarkistamaan, onko $ _GET [’polku’] on määritelty. Jos muuttuja on määritetty, file_exists () -toimintoa käytetään tarkistamaan, onko tiedosto palvelimessa. Seuraavaksi, otsikko () -toimintoa käytetään tarvittavien otsikkotietojen asettamiseen ennen readfile () toiminto. The basename () -toimintoa käytetään tiedostonimen noutamiseen ja Tiedoston koko() -toimintoa käytetään tiedoston koon lukemiseen tavuina, mikä näkyy avattavassa valintaikkunassa tiedoston lataamiseksi. The huuhtele () -toimintoa käytetään lähtöpuskurin tyhjentämiseen. The readfile () -toimintoa käytetään tässä vain tiedostonimen kanssa.

download.php



jos( mennyt ($ _GET['polku']))
{
// Lue tiedostonimi
$ tiedostonimi = $ _GET['polku'];
// Tarkista, onko tiedosto olemassa vai ei
jos( file_exists ($ tiedostonimi)) {

// Määritä otsikkotiedot
otsikko ('Sisältö-kuvaus: Tiedostonsiirto');
otsikko ('Sisältötyyppi: sovellus/oktettivirta');
otsikko ('Välimuistin hallinta: ei välimuistia, täytyy tarkistaa uudelleen');
otsikko ('Vanhenee: 0');
otsikko ('Sisältö-sijoitus: liite; tiedostonimi = ''. perusnimi ($ tiedostonimi).'' '');
otsikko (Sisällön pituus: . Tiedoston koko ($ tiedostonimi));
otsikko ('Pragma: julkinen');

// Tyhjennä järjestelmän lähtöpuskuri
huuhtele ();

// Lue tiedoston koko
lukutiedosto ($ tiedostonimi);

// Lopeta komentosarjasta
the ();
}
muu{
heitti pois 'Tiedostoa ei ole.';
}
}
muu
heitti pois 'Tiedostonimeä ei ole määritetty.'
?>

Lähtö
Seuraava tulos tulee näkyviin, kun klikkaat kuvatiedoston latauslinkkiä. Tiedoston koko rose.jpg kuva on 27,2 kt , kuten valintaikkunassa näkyy. Voit ladata tiedoston valitsemalla Tallenna tiedosto -painiketta ja paina -painiketta OK -painiketta.

Esimerkki 2: Lataa tiedosto tiedostopolulla

Jos tiedosto on olemassa annetussa tiedoston sijainnissa, tiedoston polku on mainittava URL -osoitteessa. Tässä esimerkissä luomme HTML -tiedoston, jolla on seuraava koodi, joka välittää tiedostonimen tiedoston polun kanssa:

lataa3.html

< html >
< pää >
< otsikko >Lataa tiedostot</ otsikko >
</ pää >
< vartalo >
< s >< kohteeseen href='download.php? path = downloads/luento.pdf'>Lataa PDF -tiedosto</ kohteeseen ></ s >
< s >< kohteeseen href='download2.php? path = downloads/rose.jpg'>Lataa JPG -tiedosto</ kohteeseen ></ s >
</ vartalo >
</ html >

Luomme PHP -tiedoston seuraavalla koodilla ladataksesi tiedoston tiedostopolulta. Edellisen esimerkin PHP -koodia muutetaan hieman tiedoston lataamiseksi annetulta polulta. The tyhjennä välimuisti () -toimintoa käytetään tyhjentämään aiemmin tallennettu välimuisti. Siinä käytetään kahta argumenttia readfile () toiminto.

lataa2.php


jos( mennyt ($ _GET['polku']))
{
// Lue URL -osoite
$ url = $ _GET['polku'];

// Tyhjennä välimuisti
tyhjennä kipu ();

// Tarkista, onko tiedostopolku olemassa vai ei
jos( file_exists ($ url)) {

// Määritä otsikkotiedot
otsikko ('Sisältö-kuvaus: Tiedostonsiirto');
otsikko ('Sisältötyyppi: sovellus/oktettivirta');
otsikko ('Sisältö-sijoitus: liite; tiedostonimi = ''. perusnimi ($ url).'' '');
otsikko (Sisällön pituus: . Tiedoston koko ($ url));
otsikko ('Pragma: julkinen');

// Tyhjennä järjestelmän lähtöpuskuri
huuhtele ();

// Lue tiedoston koko
lukutiedosto ($ url,totta);

// Lopeta komentosarjasta
the ();
}
muu{
heitti pois 'Tiedoston polkua ei ole olemassa.';
}
}
heitti pois 'Tiedoston polkua ei ole määritetty.'

?>

Lähtö
Kun PDF -tiedoston latauslinkkiä on napsautettu, seuraava tulos tulee näkyviin.

Video-opetusohjelma

Johtopäätös

Tämä artikkeli tarjosi yksinkertaisen tavan ladata kaikki tiedostot väkisin PHP -komentosarjan avulla, jotta lukijat voivat lisätä latausominaisuuden komentosarjaansa.