asp.net MVC在数据库中保存相对路径而不是完整路径

时间:2013-07-30 11:22:03

标签: sql-server-2008 asp.net-mvc-4 entity-framework-5 uploadify

asp.net MVC将数据库中的相对路径保存为

~/Content/Uploads/11thMay.jpg

不是完整路径

D:/Projects/HRMV2/CubicHRMWeb/Content/Uploads/11thMay.jpg

我想保存相对路径但是在DB完整路径中正在保存。

我该怎么办? 感谢。

3 个答案:

答案 0 :(得分:1)

如果您的问题是“如何保存为完整路径”,请尝试此操作

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();
}

答案 1 :(得分:0)

此代码不允许保存相对路径,当您尝试它时,文件名的整体设置而不仅仅是文件名。如果此时插入断点,则必须获取类似

   "/content/Uploads/C:Document/Picture/father.jpeg" 

而不是你希望它的相对路径

  "/content/Uploads/father.jpeg" 

答案 2 :(得分:0)

为了保存文档的相对路径,你应该使用system.io的getfilename属性,如下例所示。

我想您希望在包含模型或httppostedfilebase的控制器的post方法中执行此操作 在我的示例中,我有一个名为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