0

我正在尝试将一个条目保存到数据库中,并且有一个图像文件随之而来(上传到一个文件夹中)。我希望将图像文件路径也保存在数据库中,但是,问题是,我希望文件名使用条目的 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");
4

2 回答 2

2

通常,您会保存数据库记录,获取 ID,然后保存文件名。如果必须,请使用路径更新记录。

但是如果路径总是一样的,除了ID,为什么要保存到数据库中呢?

于 2013-06-11T06:44:21.553 回答
0

选择表记录的计数并为其添加 +1。你可以得到。

最好生成一个GUID或添加DateTime

于 2013-06-11T06:44:09.900 回答