1

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

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

4

3 回答 3

5

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

此外,Web 服务器无法控制(重新)下载的文件将保存在用户 PC 上的哪个位置,因此拥有此路径信息无论如何也没什么用

于 2013-04-30T14:35:55.783 回答
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);
 }

希望对你有帮助..

于 2013-05-01T05:10:09.453 回答
0

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

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

    }

在控制器中,您可以使用类似这样的操作方法:

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

    }

希望此解决方案对您有所帮助。

于 2013-05-01T08:47:58.537 回答