Я извлекаю изображение из папки в WebApi и пытаюсь отобразить его в своем угловом приложении.Это код веб-службы для получения изображения из его папки:
[HttpGet]
[Route("GetProfileImage")]
[Authorize]
public IActionResult GetImage()
{
try
{
var userId = User.Claims.First(c => c.Type == "UserID").Value;
var photo = _applicationContext.files.FirstOrDefault(x => x.UserId == userId);
var fileName = photo.FileName;
var uploadFilesPath = Path.Combine(_iHostingEnvironment.ContentRootPath, "uploads");
var filePath = Path.Combine(uploadFilesPath, fileName);
return Ok(PhysicalFile(filePath, "image/jpeg"));
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
, и это код в бэкэнде для вызова webapi:
component.ts
getProfileImage() {
this.userService.getProfileImage()
.subscribe((data: any) => {
this.imageUrl = data.fileName;
console.log(data.fileName);
});
}
service.ts
public getProfileImage = () => {
return this.http.get(this.baseUrl + '/api/ApplicationUser/GetProfileImage');
}
component.html
<div class="card-avatar" *ngIf="imageUrl">
<a href="javascript:void(0)" >
<img class="img" src="imageUrl" />
</a>
</div>
Когда я утешаю.Записав ответ, я получаю физическое местоположение самого файла примерно так:
D: \ backend \ uploads \ ca897a19-d8f6-4f77-8445-927c29f9f86d.jpg
но это не рендеринг в моем src в файле .html.
Подскажите пожалуйста, как это сделать правильно.Спасибо.