Как получить файл из ASP. NET Core Web API из службы Angular и отобразить на другой вкладке chrome - PullRequest
0 голосов
/ 07 мая 2020

У меня есть веб-API, написанный на. NET Core, которое возвращает файл следующим образом:

[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;
    }
}

Он возвращает файл следующим образом:

enter image description here

Теперь я хочу использовать службу, используя Angular со следующей функцией в службе:

getFile(id: number): Observable<File> {
    return this.http.get<File>(
        this.uri + `/file/${id}`
    );
}

Может кто-нибудь, пожалуйста, помогите, как использовать этот api, а также как можно Отображаю изображение / файл в формате Chrome?

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Вы возвращаете файл, который будет работать для загружаемого файла. Вместо того, чтобы возвращать файл, сохраните файл в своем проекте и верните путь к angular. А затем покажите путь к вашему изображению sr c.

...