Я работаю над ASP.NET Core API.API управляется базой данных.
Я храню изображения в базе данных, моя сущность ArtistImage.cs
выглядит следующим образом:
ArtistImage.cs
public class ArtistImage
{
public int Id { get; set; }
public byte[] Data { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? ModifiedAt { get; set; }
public int ArtistId { get; set; }
public Artist Artist { get; set; }
}
Как я могу преобразовать byte[]
во что-то вроде: return File("~/Images/photo.jpg", "image/jpeg");
, где это просто послужило бы изображению?
Я хочу избежать записи массива байтов в локальный системный файл первым.
Что я пробовал
Я попробовал описанный ниже метод, но, видимо, я не могу использовать File
таким образом.
public class ImagesService : IImagesService
{
private readonly DbContext context;
public ImagesService(DbContext context)
{
this.context = context;
}
public async Task<FileResult> GetArtistImageAsync(int imageId)
{
byte[] imageBytes = await context
.ArtistImages
.Where(ai => ai.Id == imageId)
.Select(ai => ai.Data)
.SingleOrDefaultAsync();
return System.IO.File(imageBytes, "image/jpg", "test");
}
}
![what I have tried](https://i.stack.imgur.com/WZQgC.png)