Я использую IFormFile, чтобы добавить изображения, а затем преобразовать файл в байтовый массив и сохранить его в своей базе данных, после чего я могу прочитать изображение и отобразить его.
однако из вида, где я добавляю изображения при открытии сохраненной записи в режиме редактирования, я не могу видеть ранее сохраненное изображение.
так что на вид у меня есть этот код:
<input type="file" asp-for="BAN_IMAGE_FILE">
на моей модели
У меня есть следующее свойство
public byte[] BAN_IMAGE {get;set;}
private IFormFile _BAN_IMAGE_FILE;
[NotMapped]
public IFormFile BAN_IMAGE_FILE
{
get => _BAN_IMAGE_FILE;
set
{
_BAN_IMAGE_FILE = value;
if (_BAN_IMAGE_FILE != null)
{
using (var ms = new MemoryStream())
{
_BAN_IMAGE_FILE.CopyTo(ms);
var fileBytes = ms.ToArray();
BAN_IMAGE = fileBytes;
}
}
}
}
так что вы можете видеть, что я делаю, когда файл выбирается, он преобразует его в байтовый массив, поэтому, когда я нажимаю кнопку сохранения, данные сохраняются.
Что я хочу сделать, так это когда я нажимаю на edit, я хочу получить байтовый массив и преобразовать его в FormFile, чтобы он отображался на экране, какие-либо предложения, как это сделать?
Способ редактирования в контроллере:
public async Task<IActionResult> Edit(int? id)
{
if (User.Identity.IsAuthenticated != true)
return NotFound();
if (id == null)
{
return NotFound();
}
var tEvents = await _context.TEVENTS.Include(x => x.BANNERS).Include(x=>x.PHOTO_GALLERY).Include(x=>x.EVENT_TYPES)
.FirstOrDefaultAsync(x => x.TE_ROWID.Equals(id));
ViewBag.EvenTypes = GetEventTypes();
if (tEvents == null)
{
return NotFound();
}
return View(tEvents);
}