我正在尝试将一个条目保存到数据库中,并且有一个图像文件随之而来(上传到一个文件夹中)。我希望将图像文件路径也保存在数据库中,但是,问题是,我希望文件名使用条目的 id (PhotoId),以确保图像文件名始终是唯一的。我有这段代码,因为 PhotoId 还没有生成,所以没有真正工作,所以保存的图像都有 0.jpg 的文件名。
无论如何我可以肯定地预测 id,所以我可以将它放入数据库条目的文件名字段中?否则,这是一个陷阱 22。
if (!Directory.Exists(Server.MapPath("~/App_Data/" + photo.ClientId)))
{
Directory.CreateDirectory(Server.MapPath("~/App_Data/") + photo.ClientId);
}
var FileExt = Path.GetExtension(photo.File.FileName);
var FilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId), photo.PhotoId.ToString()) + FileExt;
photo.File.SaveAs(FilePath);
var ThumbFilePath = Path.Combine(Server.MapPath("~/App_Data/" + photo.ClientId),photo.PhotoId.ToString() + "_thumbnail") + FileExt;
PhotoTools.MakeThumbnail(FilePath, ThumbFilePath, 0.15);
//Finally update database
photo.FilePath = FilePath;
db.Photos.Add(photo);
db.SaveChanges();
return RedirectToAction("Create");