获取MVC 3中上传文件的文件路径

时间:2013-04-30 13:56:12

标签: asp.net asp.net-mvc asp.net-mvc-3 file-upload

我很难相信没有办法让文件的完整路径上传到MVC3中的服务器(我已经读过这是出于安全目的)。

有解决方法吗?我正在编写一个小应用程序,用户将上传文件,在屏幕上进行编辑,然后将其保存回原始位置。有没有人有这样做的好方法?我是否必须使用HttpPostedFileBase以外的其他内容?

3 个答案:

答案 0 :(得分:5)

不可能。 Web服务器只能知道用户的Web浏览器愿意告诉它的文件,并且除了文件内容之外,任何当前浏览器都只提供原始文件名。客户端PC上的文件路径永远不会发送到服务器。作为安全预防措施,似乎无法通过客户端Javascript获取此信息。

此外,Web服务器无法控制用户PC上的 ,(重新)下载的文件将被保存,因此无论如何,拥有此路径信息几乎没用。

答案 1 :(得分:0)

要获取文件名和路径,您可以执行以下操作::

  foreach (string filesData in Request.Files)
  {
       var fileNm = Request.Files[filesData].FileName;
       HttpPostedFileBase hpf = Request.Files[filesData] as HttpPostedFileBase;
       string filePath = Path.Combine(HttpContext.Server.MapPath("~//Your Folder Path//"));
       hpf.SaveAs(filePath + fileNm);
 }

希望这会帮助你..

答案 2 :(得分:0)

不可能,客户端无法播放文件。首先,您需要在服务器上传文件,从那里对其执行操作并再次保存在客户端计算机中。

    @using (Html.BeginForm("EditImage", "Home", FormMethod.Post, new { enctype = "multipart/form-   data" }))
    {

    }

在控制器中你可以使用这样的动作方法:

    [HttpPost]
    public ActionResult EditImage(AddNewProductModel model, HttpPostedFileBase file)
    {

    }

希望此解决方案能为您提供帮助。