您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php中三種下載文件的方法”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中三種下載文件的方法”這篇文章吧。
<button> <a href = "http://localhost/down.zip"> 下載文件</button>
點(diǎn)擊該按鈕下載:
傳遞參數(shù):
<button> <a href = "http://localhost?f='down'"> 下載文件 </button>
查找文件并挑戰(zhàn)到下載鏈接:
<?php $down = $_GET['f']; //獲取文件參數(shù) $filename = $down.'.zip'; //獲取文件名稱 $dir ="down/"; //相對(duì)于網(wǎng)站根目錄的下載目錄路徑 $down_host = $_SERVER['HTTP_HOST'].'/'; //當(dāng)前域名 //判斷如果文件存在,則跳轉(zhuǎn)到下載路徑 if(file_exists(__DIR__.'/'.$dir.$filename)){ header('location:http://'.$down_host.$dir.$filename); }else{ header('HTTP/1.1 404 Not Found'); }
結(jié)果:
文件存在
文件不存在
<?php $file_name = "down";$file_name = "down.zip"; //下載文件名 $file_dir = "./down/"; //下載文件存放目錄 //檢查文件是否存在 if (! file_exists ( $file_dir . $file_name )) { header('HTTP/1.1 404 NOT FOUND'); } else { //以只讀和二進(jìn)制模式打開文件 $file = fopen ( $file_dir . $file_name, "rb" ); //告訴瀏覽器這是一個(gè)文件流格式的文件 Header ( "Content-type: application/octet-stream" ); //請(qǐng)求范圍的度量單位 Header ( "Accept-Ranges: bytes" ); //Content-Length是指定包含于請(qǐng)求或響應(yīng)中數(shù)據(jù)的字節(jié)長(zhǎng)度 Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) ); //用來告訴瀏覽器,文件是可以當(dāng)做附件被下載,下載后的文件名稱為$file_name該變量的值。 Header ( "Content-Disposition: attachment; filename=" . $file_name ); //讀取文件內(nèi)容并直接輸出到瀏覽器 echo fread ( $file, filesize ( $file_dir . $file_name ) ); fclose ( $file ); exit (); }
結(jié)果:和第二個(gè)一樣
總結(jié):第一個(gè)和第二個(gè)操作比較簡(jiǎn)單,但是容易暴露文件的真實(shí)地址,安全性不高,第三種能夠較好的把文件的真實(shí)地址隱藏起來
以上是“php中三種下載文件的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。