Js 下载文件流支持IE
生活随笔
收集整理的這篇文章主要介紹了
Js 下载文件流支持IE
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
function download(url, data, name) {thisFun.LoadingShow();name = name || '導出結果.csv';var xhr = new XMLHttpRequest();xhr.open('post', url, true); // 也可以使用GET方式,根據接口xhr.responseType = "blob"; // 返回類型blob// 定義請求完成的處理函數,請求前也可以增加加載框/禁用下載按鈕邏輯xhr.onload = function () {// 請求完成if (this.status === 200) {// 返回200var blob = this.response;var reader = new FileReader();reader.readAsDataURL(blob); // 轉換為base64,可以直接放入a表情hrefreader.onload = function (e) {if (navigator.msSaveBlob) { // IE10+ window.navigator.msSaveOrOpenBlob(blob, name);thisFun.LoadingHide();}else {// 轉換完成,創建一個a標簽用于下載var a = document.createElement('a');a.download = name;a.href = e.target.result;$("body").append(a); // 修復firefox中無法觸發clicka.click();$(a).remove();thisFun.LoadingHide();}}}};// 發送ajax請求xhr.send(postDataFormat(data))
}// post請求
// 格式化post 傳遞的數據
function postDataFormat(obj) {if (typeof obj != "object") {alert("輸入的參數必須是對象");return;}// 支持有FormData的瀏覽器(Firefox 4+ , Safari 5+, Chrome和Android 3+版的Webkit)if (typeof FormData == "function") {var data = new FormData();for (var attr in obj) {data.append(attr, obj[attr]);}return data;} else {// 不支持FormData的瀏覽器的處理 var arr = new Array();var i = 0;for (var attr in obj) {arr[i] = encodeURIComponent(attr) + "=" + encodeURIComponent(obj[attr]);i++;}return arr.join("&");}
}
?
總結
以上是生活随笔為你收集整理的Js 下载文件流支持IE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLPlus登录及使用
- 下一篇: 如何从12306网站下载自己喜欢的手机铃