Како преузети датотеку у ПХП -у

How Download File Php



Уопштено, није потребна ПХП скрипта за преузимање датотеке са екстензијама еке и зип . Ако је локација датотеке ове врсте датотека подешена у хреф атрибут елемента сидра, тада се датотека аутоматски преузима када корисник кликне на везу за преузимање. Неке датотеке, као нпр слика фајлови, ПДФ фајлови, текст фајлови, ЦСВ датотеке итд., не преузимају се аутоматски, већ се отварају у прегледачу када корисник кликне на везу за преузимање. Ове датотеке се могу насилно преузети у ПХП помоћу реадфиле () функција која се не преузима аутоматски. Овај водич вам показује како насилно преузети било коју датотеку помоћу ПХП скрипте.

Проверите везе за преузимање

Раније је поменуто да зип и еке датотеке се преузимају аутоматски, без коришћења ПХП скрипте. Прво креирајте ХТМЛ датотеку са следећим кодом. Овде су четири сидрена елемента дефинисана за преузимање четири врсте датотека. Ови типови датотека укључују ТЕКСТ, ЗИП, ПДФ и ЈПГ датотеке.







Преузми.хтмл



< хтмл >
< глава >
< наслов >Преузмите датотеке</ наслов >
</ глава >
< тело >
< п >< до хреф='абц.ткт'>Преузмите ТЕКСТ датотеку</ до ></ п >
< п >< до хреф='хоризон.зип'>Преузмите ЗИП датотеку</ до ></ п >
< п >< до хреф='предавање.пдф'>Преузмите ПДФ датотеку</ до ></ п >
< п >< до хреф='росе.јпг'>Преузмите ЈПГ датотеку</ до ></ п >
</ тело >
</ хтмл >

Оутпут
Појавиће се следећи дијалог за преузимање датотеке након што кликнете на везу зип датотеке. Корисник тада може преузети датотеку или отворити датотеку у управитељу архиве.




Ако кликнете на датотеку слике, слика ће се аутоматски отворити у прегледачу, као што је приказано у следећем излазу. Морате сачувати датотеку да бисте направили копију датотеке слике на локалном диску. На исти начин, када кликнете на ПДФ и ТЕКСТ линк датотеке, садржај датотеке ће се отворити у прегледачу без преузимања датотеке. Решење овог проблема је насилно преузимање датотеке помоћу уграђеног ПХП-а реадфиле () функција.





Преузмите датотеку помоћу функције реадфиле ()

Тхе реадфиле () функција се користи у ПХП скрипти за присилно преузимање било које датотеке са тренутне локације или датотеке са путањом до датотеке. Синтакса ове функције дата је испод.



Синтакса
инт реадфиле (стринг $ филенаме [, боол $ усе_инцлуде_патх = фалсе [, ресурс $ цонтект]])

Ова функција може узети три аргумента. Први аргумент је обавезан, а друга два су изборна. Први аргумент, $ назив датотеке , складишти назив датотеке или назив датотеке са стазом која ће се преузети. Подразумевана вредност другог параметра, $ усе_инцлуде_патх , је фалсе и биће постављено на труе ако се име датотеке са путањом користи у првом аргументу. Трећи аргумент, $ цонтект , се користи за означавање извора тока контекста. Ова функција враћа број прочитаних бајтова из датотеке поменуте у првом аргументу. Употреба ове функције приказана је у следећа два примера.

Пример 1: Преузмите датотеку са именом датотеке

У овом примеру ћемо креирати ХТМЛ датотеку са следећим кодом, где ће се назив датотеке проследити као параметар УРЛ -а са именом пут , а вредност овог параметра ће бити прослеђена у ПХП датотеку са именом довнлоад.пхп .

довнлоад2.хтмл

< хтмл >
< глава >
< наслов > Преузми датотеке</ наслов >
</ глава >
< тело >
< п >< до хреф='довнлоад.пхп? патх = абц.ткт'> ПреузмиТЕКСТфиле</ до ></ п >
< п >< до хреф='довнлоад.пхп? патх = хоризон.зип'> Преузмите ЗИП датотеку</ до ></ п >
< п >< до хреф='довнлоад.пхп? патх = предавање.пдф'> Преузмите ПДФ датотеку</ до ></ п >
< п >< до хреф='довнлоад.пхп? патх = росе.јпг'> Преузмите ЈПГ датотеку</ до ></ п >
</ тело >
</ хтмл >

Направићемо ПХП датотеку са следећим кодом за насилно преузимање датотеке. Овде, отишла) функција се користи за проверу да ли је $ _ГЕТ [„путања“] је дефинисан. Ако је променљива дефинисана, филе_екистс () функција се користи за проверу да ли датотека постоји на серверу. Затим, заглавље () функција се користи за постављање потребних информација заглавља пре коришћења реадфиле () функција. Тхе басенаме () функција се користи за преузимање назива датотеке, а величина фајла() функција се користи за читање величине датотеке у бајтима, што ће бити приказано у дијалогу за отварање за преузимање датотеке. Тхе флусх () функција се користи за брисање излазног бафера. Тхе реадфиле () функција се овде користи само са именом датотеке.

довнлоад.пхп



ако( отишла ($ _ГЕТ['пут']))
{
// Прочитајте име датотеке
$ назив датотеке = $ _ГЕТ['пут'];
// Проверите да ли датотека постоји или не
ако( филе_екистс ($ назив датотеке)) {

// Дефинише информације заглавља
заглавље ('Опис садржаја: Пренос датотеке');
заглавље ('Цонтент-Типе: апплицатион/оцтет-стреам');
заглавље ('Цацхе-Цонтрол: но-цацхе, муст-ревалидате');
заглавље („Истиче: 0“);
заглавље ('Садржај-Диспозиција: прилог; име датотеке = ''. басенаме ($ назив датотеке).'' ');
заглавље ('Цонтент-Ленгтх:' . величина фајла ($ назив датотеке));
заглавље ('Прагма: јавна');

// Брисање излазног бафера система
флусх ();

// Прочитајте величину датотеке
реадфиле ($ назив датотеке);

// Прекинути са скриптом
тхе ();
}
елсе{
Избацио 'Фајл не постоји.';
}
}
елсе
Избацио 'Назив датотеке није дефинисан.'
?>

Оутпут
Следећи излаз ће се појавити након клика на везу за преузимање датотеке слике. Величина датотеке росе.јпг слика је 27,2 КБ , као што је приказано у дијалогу. Датотеку можете преузети одабиром датотеке Сними документ радио дугме и притиском на У реду дугме.

Пример 2: Преузмите датотеку помоћу путање датотеке

Ако датотека постоји на датој локацији датотеке, путања до датотеке ће се морати навести у УРЛ -у. У овом примеру, креираћемо ХТМЛ датотеку са следећим кодом, која ће проследити име датотеке са путањом до датотеке:

довнлоад3.хтмл

< хтмл >
< глава >
< наслов >Преузмите датотеке</ наслов >
</ глава >
< тело >
< п >< до хреф='довнлоад.пхп? патх = преузимања/предавање.пдф'>Преузмите ПДФ датотеку</ до ></ п >
< п >< до хреф='довнлоад2.пхп? патх = довнлоадс/росе.јпг'>Преузмите ЈПГ датотеку</ до ></ п >
</ тело >
</ хтмл >

Направићемо ПХП датотеку са следећим кодом за преузимање датотеке са путање до датотеке. ПХП код у претходном примеру биће мало измењен како би се датотека преузела са дате путање. Тхе цлеарстатецацхе () функција се користи за брисање кеша који је претходно ускладиштен. Два аргумента се користе у реадфиле () функција.

довнлоад2.пхп


ако( отишла ($ _ГЕТ['пут']))
{
// Прочитајте урл
$ урл = $ _ГЕТ['пут'];

// Брисање кеша
цлеарстатцацхе ();

// Проверите да ли путања датотеке постоји или не
ако( филе_екистс ($ урл)) {

// Дефинише информације заглавља
заглавље ('Опис садржаја: Пренос датотеке');
заглавље ('Цонтент-Типе: апплицатион/оцтет-стреам');
заглавље ('Садржај-Диспозиција: прилог; име датотеке = ''. басенаме ($ урл).'' ');
заглавље ('Цонтент-Ленгтх:' . величина фајла ($ урл));
заглавље ('Прагма: јавна');

// Брисање излазног бафера система
флусх ();

// Прочитајте величину датотеке
реадфиле ($ урл,истина);

// Прекинути са скриптом
тхе ();
}
елсе{
Избацио 'Путања датотеке не постоји.';
}
}
Избацио 'Путања датотеке није дефинисана.'

?>

Оутпут
Након што кликнете на везу за преузимање ПДФ датотеке, појавит ће се сљедећи излаз.

Видео-туториал

Закључак

Овај чланак је пружио једноставан начин за присилно преузимање било које датотеке помоћу ПХП скрипте, како би читаоци лакше додали функцију преузимања у своју скрипту.