JS下載後臺介面返回的二進位制檔案
<div><a class="zhushen2" class="layui-table-link" href="javascript:download(\'' + '' + '\',\'' + d.filePath + '\')"style="margin-top:10px" >下載</a></div>
function download(utl){
var url =utl;
var that = this;
//判斷是否IE瀏覽器
if (!!window.ActiveXObject || "ActiveXObject" in window) {
//此處可以載入動畫
var req = new XMLHttpRequest();
req.open("post", url, true);
//監聽進度事件
req.addEventListener("progress", function (evt) {
if (evt.loaded > 0 && evt.loaded <= 10000) {
}
if (evt.lengthComputable) {
}
}, false);
req.responseType = "blob";
req.onreadystatechange = function () {
if (req.readyState === 4 && req.status === 200) {
var blob = new Blob([req.response], { type: 'application/force-download' });
window.navigator.msSaveBlob(blob, serverFileName);
}
};
req.send();
} else {
var xmlHttp = new XMLHttpRequest(); // XMLHttpRequest 物件用於在後臺與伺服器交換資料
xmlHttp.open('post', url, true); // 也可以使用POST方式,根據介面
xmlHttp.responseType = "blob";
xmlHttp.onprogress = function (e) {
if (e.loaded >= 0 && e.loaded <= 17800) {
}
}
xmlHttp.onload = function () {
if (this.status === 200) {
var blob = this.response;
var reader = new FileReader(); // FileReader() 讀取檔案
const blobUrl = window.URL.createObjectURL(blob)
reader.readAsDataURL(blob); // readAsDataURL() 用於讀取指定Blob或File的內容
reader.onload = function (e) { // onload 檔案讀取成功完成時觸發
var fileName = serverFileName;
var a = document.createElement('a');
a.download = fileName;
// e.target.result
a.href = blobUrl;
$("body").append(a); // 修復firefox中無法觸發click
a.click();
$(a).remove();
}
} else {
}
};
xmlHttp.send(); // 把請求傳送到伺服器
}
}
相關文章
- 介面返回二進位制檔案的下載。
- 根據介面返回的二進位制流匯出檔案
- 前端怎麼處理二進位制檔案下載前端
- Java後臺返回PDF檔案預覽下載Java
- 二進位制下載部署NginxNginx
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- 二進位制檔案視覺化(二)視覺化
- C#的二進位制檔案操作C#
- 文字檔案與二進位制檔案的區別
- Vue element ui結合java後臺匯出Excel(二進位制檔案流)VueUIJavaExcel
- JS的二進位制操作JS
- 檔案操作(二進位制拷貝)
- Git處理二進位制檔案Git
- MySQL二進位制檔案(binlog)MySql
- Python擴充套件包的非官方Windows二進位制檔案下載網址Python套件Windows
- Python讀寫二進位制檔案Python
- Java二進位制Class檔案格式解析Java
- c++ 二進位制儲存檔案C++
- 使用UltraEdit 拷貝二進位制檔案
- js讀寫二進位制檔案簡單程式碼例項JS
- 6.3建立自己執行的二進位制檔案
- Oracle建立二進位制檔案索引的方法(轉)Oracle索引
- js對檔案和二進位制操作的一些方法彙總JS
- 【轉載】傳送SAP附件到 WEBSERVICE介面(二進位制)Web
- MySQL 匯出匯入二進位制檔案MySql
- UltraEdit--二進位制檔案編輯功能
- 用shell處理二進位制檔案(轉)
- UE複製貼上二進位制檔案
- 二進位制檔案記憶體對映記憶體
- js二進位制和十進位制轉換程式碼JS
- JS操作二進位制方法 - blobJS
- js 許可權二進位制JS
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 二進位制與二進位制運算
- 二進位制檔案安裝安裝etcd
- C++ 讀取二進位制檔案到char*C++