Com descarregar un fitxer en PHP

How Download File Php



Generalment, no es necessita cap script PHP per descarregar un fitxer amb les extensions exe i cremallera . Si la ubicació del fitxer d'aquest tipus de fitxer s'estableix al fitxer href atribut de l'element d'ancoratge, el fitxer es descarrega automàticament quan l'usuari fa clic a l'enllaç de descàrrega. Alguns fitxers, com ara imatge Fitxers, PDF Fitxers, text Fitxers, CSV els fitxers, etc., no es descarreguen automàticament, sinó que s’obren al navegador quan l’usuari fa clic a l’enllaç de descàrrega. Aquests fitxers es poden descarregar per força amb PHP mitjançant el fitxer de lectura () funció que no es descarrega automàticament. Aquest tutorial us mostra com descarregar per força qualsevol fitxer mitjançant script PHP.

Consulteu els enllaços de baixada

Es va esmentar anteriorment que cremallera i exe els fitxers es descarreguen automàticament, sense utilitzar script PHP. Primer, creeu un fitxer HTML amb el codi següent. Aquí es defineixen els quatre elements d’ancoratge per descarregar els quatre tipus de fitxers. Aquests tipus de fitxers inclouen fitxers TEXT, ZIP, PDF i JPG.





Download.html



< html >
< cap >
< títol >Descarregar fitxers</ títol >
</ cap >
< cos >
< pàg >< a href='abc.txt'>Descarregueu el fitxer TEXT</ a ></ pàg >
< pàg >< a href='Horizon.zip'>Descarrega el fitxer ZIP</ a ></ pàg >
< pàg >< a href='lecture.pdf'>Descarregar fitxer PDF</ a ></ pàg >
< pàg >< a href='rosa.jpg'>Descarregueu el fitxer JPG</ a ></ pàg >
</ cos >
</ html >

Sortida
Apareixerà el quadre de diàleg següent per descarregar el fitxer després de fer clic a l’enllaç del fitxer zip. A continuació, l'usuari pot descarregar el fitxer o obrir-lo al gestor d'arxius.




Si feu clic al fitxer d'imatge, la imatge s'obrirà automàticament al navegador, tal com es mostra a la sortida següent. Heu de desar el fitxer per fer una còpia del fitxer d'imatge a la unitat local. De la mateixa manera, quan feu clic als enllaços de fitxers PDF i TEXT, el contingut del fitxer s'obrirà al navegador sense descarregar-lo. La solució a aquest problema és descarregar el fitxer amb la força mitjançant el PHP incorporat readfile () funció.





Descarregar fitxer mitjançant la funció readfile ()

El readfile () La funció s'utilitza en l'script PHP per descarregar amb la força qualsevol fitxer de la ubicació actual o el fitxer amb la ruta del fitxer. La sintaxi d'aquesta funció es dóna a continuació.



Sintaxi
int readfile (cadena $ nom_fitxer [, bool $ use_include_path = false [, recurs $ context]])

Aquesta funció pot adoptar tres arguments. El primer argument és obligatori i els altres dos arguments són opcionals. El primer argument, $ nom de fitxer , emmagatzema el nom del fitxer o el fitxer amb la ruta que es descarregarà. El valor per defecte del segon paràmetre, $ use_include_path , és fals i es definirà a true si s'utilitza el nom de fitxer amb el camí d'accés al primer argument. El tercer argument, $ context , s'utilitza per indicar el recurs de flux de context. Aquesta funció retorna el nombre de bytes llegits del fitxer esmentat al primer argument. Els usos d’aquesta funció es mostren als dos exemples següents.

Exemple 1: descarregueu el fitxer amb el nom del fitxer

En aquest exemple, crearem un fitxer HTML amb el següent codi, on es passarà el nom del fitxer com a paràmetre de l'URL anomenat Camí , i el valor d'aquest paràmetre es passarà al fitxer PHP anomenat download.php .

download2.html

< html >
< cap >
< títol > Descarregar fitxers</ títol >
</ cap >
< cos >
< pàg >< a href='download.php? path = abc.txt'> DescarregarTEXTdossier</ a ></ pàg >
< pàg >< a href='download.php? path = horizon.zip'> Descarregar fitxer ZIP</ a ></ pàg >
< pàg >< a href='download.php? path = lecture.pdf'> Descarregar fitxer PDF</ a ></ pàg >
< pàg >< a href='download.php? path = rose.jpg'> Descarregueu el fitxer JPG</ a ></ pàg >
</ cos >
</ html >

Crearem el fitxer PHP amb el següent codi per descarregar-lo per força. Aquí, el desaparegut) s'utilitza per comprovar si el fitxer $ _GET ['camí'] està definit. Si es defineix la variable, el fitxer file_exists () s'utilitza per comprovar si el fitxer existeix al servidor. A continuació, el capçalera () s'utilitza per configurar la informació de capçalera necessària abans d'utilitzar el fitxer readfile () funció. El nom de base () La funció s'utilitza per recuperar el nom del fitxer i el fitxer mida de l'arxiu() La funció s'utilitza per llegir la mida del fitxer en bytes, que es mostrarà al quadre de diàleg d'obertura per descarregar el fitxer. El rubor() s'utilitza per esborrar la memòria intermèdia de sortida. El readfile () aquí, només s’utilitza la funció.

download.php



si( desaparegut ($ _OBTENIR['Camí']))
{
// Llegiu el nom del fitxer
$ nom de fitxer = $ _OBTENIR['Camí'];
// Comproveu que el fitxer existeix o no
si( fitxer_existeix ($ nom de fitxer)) {

// Definiu informació de capçalera
capçalera ('Descripció del contingut: transferència de fitxers');
capçalera ('Tipus de contingut: application / octet-stream');
capçalera ('Control de memòria cau: sense memòria cau, s'ha de revalidar');
capçalera ('Caduca: 0');
capçalera ('Disposició del contingut: fitxer adjunt; nom del fitxer = '. nom de base ($ nom de fitxer).'' ');
capçalera ('Longitud del contingut:' . mida de l'arxiu ($ nom de fitxer));
capçalera ('Pragma: públic');

// Esborra la memòria intermèdia de sortida del sistema
rubor ();

// Llegiu la mida del fitxer
arxiu de lectura ($ nom de fitxer);

// Finalitza des de l'script
el ();
}
en cas contrari{
trobo 'L'arxiu no existeix.';
}
}
en cas contrari
trobo 'El nom del fitxer no està definit.'
?>

Sortida
La següent sortida apareixerà després de fer clic a l'enllaç de baixada del fitxer d'imatge. La mida del fitxer del fitxer rosa.jpg imatge és 27,2 KB , tal com es mostra al quadre de diàleg. Podeu descarregar el fitxer seleccionant el fitxer Guardar arxiu i premeu el botó d'opció D'acord botó.

Exemple 2: descarregueu el fitxer amb la ruta del fitxer

Si el fitxer existeix a la ubicació del fitxer indicat, caldrà esmentar el camí del fitxer a l'URL. En aquest exemple, crearem un fitxer HTML amb el codi següent, que passarà el nom del fitxer amb la ruta del fitxer:

download3.html

< html >
< cap >
< títol >Descarregar fitxers</ títol >
</ cap >
< cos >
< pàg >< a href='download.php? path = downloads / lecture.pdf'>Descarregar fitxer PDF</ a ></ pàg >
< pàg >< a href='download2.php? path = downloads / rose.jpg'>Descarregueu el fitxer JPG</ a ></ pàg >
</ cos >
</ html >

Crearem un fitxer PHP amb el següent codi per descarregar un fitxer del camí del fitxer. El codi PHP de l’exemple anterior es modificarà lleugerament per descarregar el fitxer del camí donat. El clearstatecache () s'utilitza per esborrar la memòria cau que s'havia emmagatzemat anteriorment. S'utilitzen dos arguments al fitxer readfile () funció.

download2.php


si( desaparegut ($ _OBTENIR['Camí']))
{
// Llegiu l'URL
$ url = $ _OBTENIR['Camí'];

// Esborreu la memòria cau
clearstatcache ();

// Comproveu que el camí del fitxer existeix o no
si( fitxer_existeix ($ url)) {

// Definiu informació de capçalera
capçalera ('Descripció del contingut: transferència de fitxers');
capçalera ('Tipus de contingut: application / octet-stream');
capçalera ('Contingut-Disposició: fitxer adjunt; nom del fitxer = '. nom de base ($ url).'' ');
capçalera ('Longitud del contingut:' . mida de l'arxiu ($ url));
capçalera ('Pragma: públic');

// Esborra la memòria intermèdia de sortida del sistema
rubor ();

// Llegiu la mida del fitxer
arxiu de lectura ($ url,cert);

// Finalitza des de l'script
el ();
}
en cas contrari{
trobo 'El camí del fitxer no existeix.';
}
}
trobo 'El camí del fitxer no està definit.'

?>

Sortida
Després de fer clic a l'enllaç de descàrrega del fitxer PDF, apareixerà la següent sortida.

Video Tutorial

Conclusió

Aquest article proporcionava una manera senzilla de descarregar per força qualsevol fitxer mitjançant l’escript PHP, per ajudar els lectors a afegir la funció de descàrrega al seu script.