asp.net 尝试直接从API的响应下载文件

lnvxswe2  于 2023-04-22  发布在  .NET
关注(0)|答案(1)|浏览(147)

我有一个API响应,返回一个xlsx文件作为响应。
该API是触发按钮点击,我需要下载它作为对响应。
每个API调用都经过一个服务,该服务处理将令牌附加到url以进行身份验证。这基本上意味着我不能使用像the one mentioned here这样的方法。我得到的响应是like thisresponse when debugged)。我已经尝试过
a.href = window.URL.createObjectURL(response)

a.href = window.URL.createObjectURL(new blob([response]))
并尝试下载,但电子表格已损坏(我知道文件是罚款sice swagger返回文件正确)。
我如何得到这个文件作为swagger like this中的文件,以便我可以在a.click()中下载。
这是我的api从点网
先谢谢你。

pod7payv

pod7payv1#

您可以尝试使用FileSaver.js库下载该文件。
下面是示例代码:

import FileSaver from 'file-saver';

// Call your API to get the response
axios.get('/PrintWorkSheet', { responseType: 'arraybuffer' }).then((response) => 
    {
        //Create a Blob object from the response data
        const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });

        // Use FileSaver.js to save the Blob as a file
        FileSaver.saveAs(blob, 'WorkSheet.xlsx');
    })
    .catch((error) => {
        console.log(error);
    });

相关问题