JQuery 實現文件下載的常用方法分析
本文實例講述了JQuery 實現文件下載的常用方法。分享給大家供大家參考,具體如下:
GET方式
window.location.href = url;
POST方式
var url = "下載接口地址"; // 構造隱藏的form表單 var $form = $("<form id='download' class='hidden' method='post'></form>"); $form.attr("url",url); $(body).append($form); // 添加提交參數 var $input1 = $("<input name='param1' type='text'></input>"); $input1.attr("value","參數值1"); $("#download").append($input1); var $input2 = $("<input name='param2' type='text'></input>"); $input1.attr("value","參數值2"); $("#download").append($input2); // 提交表單 $form.submit();
ajax為什么不能下載文件
ajax支持的服務器返回數據類型有:xml、json、script、html,其他類型(例如二進制流)將被作為String返回,無法觸發(fā)瀏覽器的下載處理機制和程序。
// ajax將返回數據轉換為string,再利用該string創(chuàng)建Blob對象,下載的文件無法正確打開,數據可能已經被破壞 var blob = new Blob([data]); //對于Blob對象,我們可以創(chuàng)建出一個URL來訪問它。使用URL對象的createObjectURL方法。 var a = document.createElement('a'); a.download = 'data.doc'; a.href=window.URL.createObjectURL(blob); a.click()
HTML5 Blob對象
一直以來,JS都沒有比較好的可以直接處理二進制的方法。而Blob的存在,允許我們可以通過JS直接操作二進制數據。Blob對象可以看做是存放二進制數據的容器。
創(chuàng)建Blob對象
var blob = new Blob(dataArr:Array<any>, opt:{type:string,endings:string});
- dataArr:數組,包含了要添加到Blob對象中的數據。數據可以是任意多個ArrayBuffer,ArrayBufferView, Blob,或者 DOMString對象。
- opt:對象,包含兩個屬性
- type:用于設置Blob對象的屬性(如:MIME類型)
- endings :(已廢棄),設置BlobBuilder.append() 方法的endings參數,取值"transparent"或"native"
// 例如創(chuàng)建一個裝填DOMString對象的Blob對象 var data='<b style="font-size:32px;color:red;">Blob</b>'; var blob=new Blob([data],{"type":"text/html"}); console.log(blob);
xmlhttprequest 2 + Blob 實現文件下載
xmlhttprequest 2 標準支持流文件,使用 xhr.response
作為返回(不是responseText)
var url = ""; var xhr = new XMLHttpRequest(); xhr.open('GET', url, true);//get請求,請求地址,是否異步 xhr.responseType = "blob"; // 返回類型blob xhr.onload = function () {// 請求完成處理函數 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請求 xhr.send();
更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jQuery頁面元素操作技巧匯總》、《jQuery常見事件用法與技巧總結》、《jQuery常用插件及用法總結》、《jQuery擴展技巧總結》及《jquery選擇器用法總結》
希望本文所述對大家jQuery程序設計有所幫助。
相關文章
jQuery動態(tài)添加li標簽并添加屬性和綁定事件方法
下面小編就為大家分享一篇jQuery動態(tài)添加li標簽并添加屬性和綁定事件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02jQuery中delegate和on的用法與區(qū)別詳細解析
本篇文章主要是對jQuery中delegate和on的用法與區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01Jquery.TreeView結合ASP.Net和數據庫生成菜單導航條
在網上瀏覽了許多關于利用Jquery.TreeView插件生成樹的例子!但是大多數都沒有結合數據庫來生成樹,很難運用到實際項目中!2010-08-08