asp.net MVC 将数据库中的相对路径保存为
~/Content/Uploads/11thMay.jpg
不是完整路径
D:/Projects/HRMV2/CubicHRMWeb/Content/Uploads/11thMay.jpg
我想保存相对路径,但在 DB 中保存完整路径。
我该怎么做?谢谢。
asp.net MVC 将数据库中的相对路径保存为
~/Content/Uploads/11thMay.jpg
不是完整路径
D:/Projects/HRMV2/CubicHRMWeb/Content/Uploads/11thMay.jpg
我想保存相对路径,但在 DB 中保存完整路径。
我该怎么做?谢谢。
如果您的问题是“如何保存为完整路径”,请试试这个
string path = Path.Combine(Server.MapPath("~/Content/img/Company/LogoFiles"), filename);
如果您的问题是“如何另存为相对路径”,请试试这个
[HttpPost]
public ActionResult Save(HttpPostedFileBase myFile)
{
string filename = myFile.FileName;
string relativeFileName = "~/Content/Uploads/" + filename;// relative path
return View();
}
此代码不允许保存相对路径,当您尝试时,会设置文件名的整体而不仅仅是文件名。如果此时插入断点,则必须获得类似
"/content/Uploads/C:Document/Picture/father.jpeg"
而不是你想要的相对路径
"/content/Uploads/father.jpeg"
为了保存文档的相对路径,您应该使用 system.io 的 getfilename 属性,如下例所示。
我想您想在控制器的 post 方法中执行此操作,该方法在我的示例中包含模型或 httppostedfilebase,我有一个名为 imagefichier 的带有 httppostedfilebase 属性的模型,因此您可以通过执行此操作获取文档名称
var lefilename = System.IO.Path.GetFileName(model.imagefichier.FileName);
//Suppose that you want to save it in your root web file
//like ~/Images/Administrateur/leilename,you can do it like this
string cheminbdd = "~/Images/Administrateur/" + lefilename;
//it is cheminbdd that you can save in your database as your relative path