使用axios vuejs下载Excel文件时损坏。

问题描述 投票:0回答:1

我正试图下载一个excel文件。我已经使用了axios。

我尝试了下面的代码

     axios.post(backendURL + 'api/client?file_name='+file_name,params, {
        file_name: file_name
    }, {
        responseType: 'blob'
    }).then((response) => {
        const url = URL.createObjectURL(new Blob([response.data], {
            type: 'application/vnd.ms-excel'
        }))
        const link = document.createElement('a')
        link.href = url
        link.setAttribute('download', file_name)
        document.body.appendChild(link)
        link.click()
    });

我得到的错误是 "Excel无法打开文件 "filename.xlsx",因为文件格式或文件扩展名无效。请检查文件是否已损坏,文件扩展名是否与文件格式相匹配"。

我已经尝试了所有的解决方案,我发现在谷歌,但没有工作。请帮助

javascript excel vue.js axios blob
1个回答
-1
投票
  downloadFile() {
            axios({
                url: this.scenario.file,  //.substring(0, this.scenario.file.lastIndexOf("/"))
                method: "GET",
                headers: {"Accept": "application/vnd.ms-excel"},
                responseType: "blob"
            }).then(response => {
                const fileURL = window.URL.createObjectURL(new Blob([response.data]));
                const fileLink = document.createElement("a");

                fileLink.href = fileURL;
                fileLink.setAttribute("download", "file.xlsx");
                document.body.appendChild(fileLink);

                fileLink.click();
            });
        },
© www.soinside.com 2019 - 2024. All rights reserved.