通过 axios 的方式下载文件至本地,具体方法如下:

注: responseType 设置为 blob 二进制流的方式

    exportFailedPersonnel(id: number): void { // 导出失败人员
        console.log('导出失败人员 - ' + id);
        const caId = this.userService.userInfo.caid;
        const token = this.userService.userInfo.token;
        const tissueId = this.userService.userInfo.tissueid;
        const userName = this.userService.userInfo.username;
        const url = '/api/exam/task/export/failed/' + id;

        axios.get(url, {
            params: {},
            headers: {
                caid: caId,
                tissueid: tissueId,
                token: token,
                username: username,
            },
            responseType: 'blob', // 切记类型 blob
        }).then((res) => {
            console.log(res);
            let blob = new Blob([res.data]);
            let url = window.URL.createObjectURL(blob); // 创建 url 并指向 blob
            let a = document.createElement('a');
            a.href = url;
            a.download = '导出失败人员.xlsx';
            a.click();
            window.URL.revokeObjectURL(url); // 释放该 url
        }).catch((err) => {
            console.log(err);
        });
    }

以上便是此次分享的全部内容,希望能对大家有所帮助!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐