在前端项目中,正常下载文件可以通过请求后台接口用blob的格式获取数据量进行下载,或者直接访问对应链接下载,但有时候因为一些原因前端返回的数据是base64字符串。这时候我们要下载的话就需要将base64字符串转换成blob文件流。下面是转换的相关代码:
// base64转换blobconstbase64ToArrayBuffer=(base64)=>{var bloBString = window.atob(base64);var bloBLen = bloBString .length;var bytes =newUint8Array(bloBLen);for(var i =0; i < bloBLen; i++){var ascii = bloBString .charCodeAt(i);
bytes[i]= ascii;}return bytes;};
转换成功后,我们只需要将转换的数据流进行下载即可
// 创建a标签const link = document.createElement("a");// 获取数据量const blob =newBlob([base64ToArrayBuffer('base64数据')]);// 下载文件const objectUrl =URL.createObjectURL(blob);
link.href = objectUrl;
link.setAttribute("download",'文件名称');
link.click();URL.revokeObjectURL(objectUrl);
版权归原作者 多写写呗 所有, 如有侵权,请联系我们删除。