我正在制作一个包含相册和图像的网站,旨在学习如何使用图像。我可以更改图像名称并将其上传到图像文件夹。
我的问题有两个:
(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");
}
上载图像的相册ID传递到该方法中。我需要将此相册ID以及图像路径(我也需要图像名称吗?)输入数据库。我该怎么办?
也是
public List<Image> Image { get; set; }
在相册类中,存储图像的正确方法是什么?
答案 0 :(得分:0)
u可以尝试使用此文件路径
string filepath=Path.GetFullPath(file)
和文件名
string name=Path.GetFileName(file)
imagepath=filepath+name;
并将其插入数据库
{
string sql = "insert into tablename values(@id,@AlbumId,@imagepath)";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@AlbumId", albumid);
cmd.Parameters.AddWithValue("@Imagepath",imagepath);
con.Open();
cmd.ExecuteScalar();
con.Close();
}
}
答案 1 :(得分:0)
@ m1547,
@marcelo's answer应该使您在实现方面朝着正确的方向发展。最重要的是:
希望这会有所帮助。