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
- MySQL二進位制檔案(binlog)MySql
- 二進位制下載部署NginxNginx
- 二進位制檔案視覺化(二)視覺化
- JS的二進位制操作JS
- Git處理二進位制檔案Git
- 檔案操作(二進位制拷貝)
- Vue element ui結合java後臺匯出Excel(二進位制檔案流)VueUIJavaExcel
- Python擴充套件包的非官方Windows二進位制檔案下載網址Python套件Windows
- js對檔案和二進位制操作的一些方法彙總JS
- 6.3建立自己執行的二進位制檔案
- 二進位制檔案記憶體對映記憶體
- 二進位制檔案安裝安裝etcd
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- 【轉載】傳送SAP附件到 WEBSERVICE介面(二進位制)Web
- JS操作二進位制方法 - blobJS
- js 許可權二進位制JS
- C++ 讀取二進位制檔案到char*C++
- 檢視寶塔mysql二進位制檔案 mysqlbinlogMySql
- 【Linux】檢視二進位制檔案內容_hexdumpLinux
- golang: 給二進位制檔案增加版本資訊Golang
- 如何正確地把伺服器端返回的檔案二進位制流寫入到本地儲存成檔案伺服器
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 二進位制與二進位制運算
- js 檔案下載JS
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 進位制詳解:二進位制、八進位制和十六進位制
- vue/js實現檔案流下載,檔案下載進度監聽VueJS
- od 轉儲 二進位制檔案常用命令
- flutter-讀寫二進位制檔案到裝置Flutter
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- 二進位制檔案和符號檔案(PDB)如何校驗是否匹配符號
- 文盤Rust -- 如何把配置檔案打包到二進位制檔案裡Rust
- JavaScript 二進位制、八進位制與十六進位制JavaScript