angular - 如何从 Angular 服务接收来自 ASP.NET Core Web API 的文件并在不同的 chrome 选项卡中显示
问题描述
我有一个用 .NET Core 编写的 Web API,它返回一个文件,如下所示:
[Authorize]
[HttpGet("{id}")]
public async Task<IActionResult> GetFile(int id)
{
var response = await _fileService.GetFile(id);
Response.Clear();
return File(response.FileByteArray, response.FileType, response.FileName);
}
public async Task<FileResponseDTO> GetFile(int fileId)
{
using (var unitOfWork = _unitOfWorkFactory.CreateUnitOfWork())
{
var response = new FileResponseDTO();
var file = await unitOfWork.FileRepository.GetFile(fileId);
if (file != null)
{
string filePath = GetFilePath(file.FileName);
response.FileByteArray = System.IO.File.ReadAllBytes(filePath);
response.FileName = file.FileName;
response.FileType = file.FileType; ;
}
return response;
}
}
它返回一个文件,如下所示:
现在我想在服务中使用具有以下功能的 Angular 来使用该服务:
getFile(id: number): Observable<File> {
return this.http.get<File>(
this.uri + `/file/${id}`
);
}
有人可以帮助如何使用这个 api 以及如何在 Chrome 中显示图像/文件吗?
谢谢。
解决方案
您正在返回一个文件,该文件将适用于下载文件。不要返回文件,而是将文件保存在项目中的位置并将路径返回到 angular。然后显示图像 src 的路径。
推荐阅读
- single-sign-on - 我是否必须使用电子邮件进行 SAML 身份验证
- html - 如何制作具有透明背景的滚动条
- amazon-web-services - AWS 静态网站托管的可扩展性如何
- postgresql - 如何制作只有一个初始点的 PostGIS LINESTRING
- python - Python 继承和变量
- java - Mockito 如何在 java 中为 UUID 生成编写单元测试?
- python - 如何在此图中定位 Seaborn 颜色条?
- firebase - 如何本地化 Firebase 云消息通知?
- sql - 如何从一个表中的同一列获取不同的结果集
- c++ - C ++数独递归求解程序有效但最终什么也不输出