我在 .NET api 中有这个简单的控制器方法:
var fileResult = await _tempFilesService.GetFile(fileId);
return File(fileResult.Contents, fileResult.ContentType, fileId.ToString());
我在这样的节点服务器中调用这个 api,使用来自 apollo 的 RESTDataSource
this.get(`/temp-file?fileId=${fileId}`)
从我所看到的情况来看,它会自动解析正文并给我一个字符串。我不能修改这个行为,所以我必须使用这个字符串。
我不知道该怎么办。我可以在节点服务器中以某种方式处理它,或者只是将它发送到我的反应前端并在那里处理它。我尝试通过首先将它放入 Uint8Array 中来制作一个 blob
const byteArray = new Uint8Array(THE_STRING);
const blob = new Blob([byteArray], { type: "application/octet-stream" });
然后这样做URL.createObjectURL(blob)
,我尝试(在节点服务器上)将其放入缓冲区,然后执行 toString,但它只返回无效文件。老实说,我不知道自己在做什么。
我怎样才能下载这个文件?