php如何實現文件下載-創(chuàng)新互聯

1. 設置超鏈接的href屬性

為海豐等地區(qū)用戶提供了全套網頁設計制作服務,及海豐網站建設行業(yè)解決方案。主營業(yè)務為網站設計制作、網站設計、海豐網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

<ahref="文件地址"></a>

如果瀏覽器不能解析該文件,瀏覽器會自動下載。而如果文件是圖片或者txt,會直接在瀏覽器中打開。

2. 輸出文件流

//download.php

//頁面加載的時候就調用

downloadFile("3.rar","something.rar");

//$filePath是服務器的文件地址

//$saveAsFileName是用戶指定的下載后的文件名

function downloadFile($filePath,$saveAsFileName){

// 清空緩沖區(qū)并關閉輸出緩沖

ob_end_clean();

//r: 以只讀方式打開,b: 強制使用二進制模式

$fileHandle=fopen($filePath,"rb");

if($fileHandle===false){

echo "Can not find file: $filePath\n";

exit;

}

Header("Content-type: application/octet-stream");

Header("Content-Transfer-Encoding: binary");

Header("Accept-Ranges: bytes");

Header("Content-Length: ".filesize($filePath));

Header("Content-Disposition: p_w_upload; filename=\"$saveAsFileName\"");

while(!feof($fileHandle)) {

//從文件指針 handle 讀取最多 length 個字節(jié)

echo fread($fileHandle, 32768);

}

fclose($fileHandle);

}

注:

(1)download.php可以設置為<a>標簽的href屬性,點擊<a>標簽,則瀏覽器會提示下載。

(2)jQuery模擬觸發(fā)<a>的click事件時有bug,應該使用html對象的click方法。$('#hyperLink')[0].click();

(3)jQuery Mobile會改變<a>的行為。所以,在使用jQuery Mobile時,無論手動點擊還是java模擬點擊,都會跳轉到download.php頁面,并不會觸發(fā)下載。(4)location.href或location.replace定向到download.php也可以實現下載。這種方法不受jQuery Mobile的影響。

(5)以上兩種方法進行下載時,chrome會提示“Resource interpreted as Document but transferred with MIME type application/octet-stream”。為<a>增加html5屬性download可以解決這個問題。<a href="..." download></a>而location.href或location.replace觸發(fā)的下載,暫無辦法解決。

程序員杭州軟件測試杭州APP開發(fā)杭州PHP工程師

另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:php如何實現文件下載-創(chuàng)新互聯
分享路徑:http://muchs.cn/article46/pgseg.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站收錄、定制開發(fā)、品牌網站設計、品牌網站制作、網站策劃自適應網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網站建設公司