js下载二进制文件

55 阅读1分钟
 let blob = new Blob([res], {
                type: "application/vnd.ms-excel", //将会被放入到blob中的数组内容的MIME类型
            });
            let fileName = "菜品库.xlsx";

            if ("msSaveOrOpenBlob" in navigator) {
                //先检测浏览器是否支持该方法
                window.navigator.msSaveOrOpenBlob(blob, filename);
            } else {
                // 创建一个新的对象URL,该对象URL可以代表某一个指定的file对象或者blob对象。
                const downUrl = window.URL.createObjectURL(blob);
                const dom = document.createElement("a");
                dom.href = downUrl;
                dom.download = fileName;
                dom.click();
                dom.parentNode?.removeChild(dom);
                //释放downUrl 性能考虑 ,当前窗口关闭会自动释放
                window.URL.revokeObjectURL(downUrl);
            }