데이터베이스에 항목을 저장하려고하는데 폴더에 업로드 된 이미지 파일이 있습니다. 이미지 파일 경로가 데이터베이스에 저장되기를 원하지만, 문제는, 파일 이름이 항목의 ID (PhotoId)를 사용하여 이미지 파일 이름이 항상 고유하도록하는 것입니다. PhotoId가 아직 생성되지 않았기 때문에 실제로 작동하지 않는이 코드가 있으므로 저장된 이미지의 파일 이름은 모두 0.jpg입니다.삽입 이전에 테이블 항목 ID를 가져 오는 방법이 있습니까?
어쨌든 나는 이드를 예측할 수 있을까요? 그럼, 데이터베이스 항목의 파일 이름 필드에 넣을 수 있습니까? 그렇지 않으면 catch 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");
내 문제는 확장자가 다를 수 있다는 것이었지만 생각났습니다. 나는 단순히 데이터베이스에 항목을 저장하기 전에 알아낼 수있는 확장을 저장합니다. – RealityDysfunction