Я делаю сайт с альбомами и изображениями только для того, чтобы научиться работать с изображениями.Я могу изменить имена изображений и загрузить их в папку изображений.
У меня две проблемы:
(1) Я не знаю, как добавить путь к изображению в базу данных
(2) Я не знаю, как добавить списокизображений для каждого альбома
Я потратил много времени, пытаясь найти ответы без результатов.
public class Image
{
public int Id { get; set; }
public int AlbumId { get; set; }
[ForeignKey("AlbumId")]
public virtual Album Album { get; set; }
public string ImagePath { get; set; }
}
public class Album
{
public int Id { get; set; }
public string AlbumTitle { get; set; }
public List<Image> Image { get; set; }
}
public async Task<IActionResult> UploadImage(int id, Album album)
{
if (id != album.Id)
{
return NotFound();
}
var newFileName = string.Empty;
if (HttpContext.Request.Form.Files != null)
{
var fileName = string.Empty;
string PathDB = string.Empty;
var files = HttpContext.Request.Form.Files;
foreach (var file in files)
{
if (file.Length > 0)
{
fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
var myUniqueFileName = Convert.ToString(Guid.NewGuid());
var FileExtension = Path.GetExtension(fileName);
newFileName = myUniqueFileName + FileExtension;
fileName = Path.Combine(_hostingEnvironment.WebRootPath, "images") + $@"\{newFileName}";
PathDB = "images/" + newFileName;
using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
}
}
}
_db.Update(album);
await _db.SaveChangesAsync();
return View("Index");
}
Идентификатор альбома, в который загружаются изображенияпередается в метод.Мне нужно, чтобы этот идентификатор альбома, а также путь к изображению (мне также нужно имя изображения?) В базу данных.Как мне это сделать?
Также, является ли
public List<Image> Image { get; set; }
в классе альбома правильным способом хранения изображений?