我正在尝试在react应用程序的客户端保存一个文件。数据是从我的名为DownloadDocument的API Controller中获得的。我从我的DownloadDocument方法返回FileSreamResult。FileStreamResult读取数据并将其写入到react API中的响应。network选项卡得到一个响应,但当我记录该响应时,我得到的响应为null。我正在使用文件保护程序来尝试保存该文件。https://www.npmjs.com/package/file-saver。
有没有人对这个问题有什么建议,或者有没有更好的方法?
我在控制器中的操作:
我遇到的问题是,我对react api的响应返回为空。
[HttpGet("{documentId}")]
[AcceptVerbs("OPTIONS", "GET")]
[AllowAnonymous]
public async Task<IActionResult> DownloadDocument(int documentId)
{
if (documentId != 0)
{
var document = await service.DownloadDocumentAsync(documentId);
var documentResponse = File(document, "application/octet-stream");
return documentResponse;
}
return BadRequest("Document id is not valid");
}
react应用程序。
api.indexes.downloadDocument(clones)
.then(response=>{
console.log(response)
let FileSaver = require('file-saver');
let blob = new Blob([response], {type: "application/octet-stream"});
let filename ="testdownload"
FileSaver.saveAs(blob, filename)
谢谢你的帮助。
发布于 2018-09-04 08:33:45
我需要将这个添加到头文件中。responseType:'blob‘
这篇文章很好地解释了https://medium.com/@fakiolinho/handle-blobs-requests-with-axios-the-right-way-bb905bdb1c04。
https://stackoverflow.com/questions/52152964
复制相似问题