一、获取文件流
/**
* 获取二进制文件流
* @param {string} url 系统API
* @param {object} param 参数
* @param {boolean} showcode msg提示
* @param {boolean} layout 加载层
*/
const buffer=(url, param, showcode = false, layout = false)=>{
let load=new loading(wuConfig.timeout);
load.openLoading(layout)
return new Promise((resolve, reject) => {
apiInstance({
method: "get",
url: url,
data: param,
responseType: "arraybuffer"
}).then(res=>{
// if (res.headers["content-type"] === "application/json;charset=UTF-8") {
// let uint8 = new Uint8Array(res.data); // 提取uint8Array
// let resToString = JSON.parse(
// decodeURIComponent(escape(String.fromCharCode(...uint8)))
// ); // 解决乱码
// load.closeLoading();
// load.showcode(resToString.code,resToString.message,showcode)
// resolve(res);
// } else {
// resolve(res);
// }
resolve(res);
}).catch(err=>{
reject(err);
})
})
}
二、转换blobURL
buffer("/api/img", {}, false,true).then(res => {
if (res.status == 200) {
let blob = new Blob([res.data], { type: "image/png" });
let imageUrl = (window.URL || window.webkitURL).createObjectURL(blob);
console.log(imageUrl);//img url
}
});