前端处理后端返回的二进制流文件

时间:2025-03-28 09:36:43

1、前端处理后端返回的二进制流文件

var xhr = new XMLHttpRequest();   
("post", "/download/scoreFile", true);
 = "blob";  //重点:设置接收类型
 = function() {
    if ( == 200) {
        var url = ();
		var a = ("a");
		if(!a){
			a = ("a");
			("id", "aElem");
			(a);
		}
         = url;
        ();
        (url)
    }
}
();

注意:如果后端接口返回的是二进制流数据,在发送请求时需要设置responseType=‘blob’,否则收到的数据将是乱码。

2、前端处理后端返回的二进制流乱码图片

var xhr = new XMLHttpRequest();   
("get", "/verify", true);
 = "arraybuffer";  //重点:设置接收类型
 = function() {
    if ( == 200) {
    	let img = ("img");
    	let imgBase = btoa(new Uint8Array().reduce((data, byte) => data +(byte),'')); //将返回数据转为为base64
		 = 'data:image/jpg|png;base64,' + imgBase
    }
}
();

拓展

(obj) 方法会创建一个 DOMString,这个 URL 的生命周期和创建它的窗口中的 document 绑定。

语法:(obj)

参数说明:obj为 File 对象、Blob 对象或者 MediaSource 对象。​

使用完后,最好调用() 释放内存;如果不主动释放内存,浏览器会在页面退出时自动释放。