您好,登錄后才能下訂單哦!
本文實(shí)例講述了JQuery 實(shí)現(xiàn)文件下載的常用方法。分享給大家供大家參考,具體如下:
GET方式
window.location.href = url;
POST方式
var url = "下載接口地址"; // 構(gòu)造隱藏的form表單 var $form = $("<form id='download' class='hidden' method='post'></form>"); $form.attr("url",url); $(body).append($form); // 添加提交參數(shù) var $input1 = $("<input name='param1' type='text'></input>"); $input1.attr("value","參數(shù)值1"); $("#download").append($input1); var $input2 = $("<input name='param2' type='text'></input>"); $input1.attr("value","參數(shù)值2"); $("#download").append($input2); // 提交表單 $form.submit();
ajax為什么不能下載文件
ajax支持的服務(wù)器返回?cái)?shù)據(jù)類型有:xml、json、script、html,其他類型(例如二進(jìn)制流)將被作為String返回,無(wú)法觸發(fā)瀏覽器的下載處理機(jī)制和程序。
// ajax將返回?cái)?shù)據(jù)轉(zhuǎn)換為string,再利用該string創(chuàng)建Blob對(duì)象,下載的文件無(wú)法正確打開(kāi),數(shù)據(jù)可能已經(jīng)被破壞 var blob = new Blob([data]); //對(duì)于Blob對(duì)象,我們可以創(chuàng)建出一個(gè)URL來(lái)訪問(wèn)它。使用URL對(duì)象的createObjectURL方法。 var a = document.createElement('a'); a.download = 'data.doc'; a.href=window.URL.createObjectURL(blob); a.click()
HTML5 Blob對(duì)象
一直以來(lái),JS都沒(méi)有比較好的可以直接處理二進(jìn)制的方法。而B(niǎo)lob的存在,允許我們可以通過(guò)JS直接操作二進(jìn)制數(shù)據(jù)。Blob對(duì)象可以看做是存放二進(jìn)制數(shù)據(jù)的容器。
創(chuàng)建Blob對(duì)象
var blob = new Blob(dataArr:Array<any>, opt:{type:string,endings:string});
// 例如創(chuàng)建一個(gè)裝填DOMString對(duì)象的Blob對(duì)象 var data='<b >Blob</b>'; var blob=new Blob([data],{"type":"text/html"}); console.log(blob);
xmlhttprequest 2 + Blob 實(shí)現(xiàn)文件下載
xmlhttprequest 2 標(biāo)準(zhǔn)支持流文件,使用 xhr.response
作為返回(不是responseText)
var url = ""; var xhr = new XMLHttpRequest(); xhr.open('GET', url, true);//get請(qǐng)求,請(qǐng)求地址,是否異步 xhr.responseType = "blob"; // 返回類型blob xhr.onload = function () {// 請(qǐng)求完成處理函數(shù) if (this.status === 200) { var blob = this.response;// 獲取返回值 var a = document.createElement('a'); a.download = 'data.doc'; a.href=window.URL.createObjectURL(blob); a.click(); } }; // 發(fā)送ajax請(qǐng)求 xhr.send();
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery頁(yè)面元素操作技巧匯總》、《jQuery常見(jiàn)事件用法與技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
免責(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)容。