1. 設(shè)置超鏈接的href屬性
為海豐等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及海豐網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、海豐網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!如果瀏覽器不能解析該文件,瀏覽器會自動下載。而如果文件是圖片或者txt,會直接在瀏覽器中打開。
2. 輸出文件流
//download.php
//頁面加載的時候就調(diào)用
downloadFile("3.rar","something.rar");
//$filePath是服務(wù)器的文件地址
//$saveAsFileName是用戶指定的下載后的文件名
function downloadFile($filePath,$saveAsFileName){
// 清空緩沖區(qū)并關(guān)閉輸出緩沖
ob_end_clean();
//r: 以只讀方式打開,b: 強制使用二進(jìn)制模式
$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可以設(shè)置為標(biāo)簽的href屬性,點擊標(biāo)簽,則瀏覽器會提示下載。
(2)jQuery模擬觸發(fā)的click事件時有bug,應(yīng)該使用html對象的click方法。$('#hyperLink')[0].click();
(3)jQuery Mobile會改變的行為。所以,在使用jQuery Mobile時,無論手動點擊還是java模擬點擊,都會跳轉(zhuǎn)到download.php頁面,并不會觸發(fā)下載。(4)location.href或location.replace定向到download.php也可以實現(xiàn)下載。這種方法不受jQuery Mobile的影響。
(5)以上兩種方法進(jìn)行下載時,chrome會提示“Resource interpreted as Document but transferred with MIME type application/octet-stream”。為增加html5屬性download可以解決這個問題。而location.href或location.replace觸發(fā)的下載,暫無辦法解決。
程序員杭州軟件測試杭州APP開發(fā)杭州PHP工程師
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。