MVC Chrome图像完整路径

时间:2017-04-23 08:03:49

标签: c# asp.net-mvc google-chrome file-io

我无法在Chrome中获取图像完整路径,但在IE中使用相同的代码。每当我从另一个位置选择图像时,它就会抛出错误

  

mscorlib.dll中发生了'System.IO.FileNotFoundException'类型的异常,但未在用户代码中处理       附加信息:找不到文件'C:\ Program Files \ IIS Express \ Chrysanthemum.jpg'。

以下是我的Controller代码

public ActionResult Create([Bind(Include = "id,Name")] Employee employee, HttpPostedFileBase file)
{
    if (ModelState.IsValid)
    {
        string Name = @"C:\temp\yourfile.png";
        System.IO.File.WriteAllBytes(Name, System.IO.File.ReadAllBytes(file.FileName));

        employee.image = System.IO.File.ReadAllBytes(file.FileName);
        db.Employees.Add(employee);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(employee);
}

以下是我的MVC代码

<input type="file" name="file" id="file" />
<input type="submit" name="submitButton" value="Save" />

由于这个问题,我无法将图像保存在任何地方。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

有/可能有几个问题。

  1. 不要使用硬编码的本地文件路径,即C:\ etc,使用Server.Mappath
  2. 同时检查您要访问的资源(即您的案例中的图像)是否位于MVC应用程序的相同或基础虚拟目录中
  3. 同时检查您是否拥有上述资源的访问权限。
  4. 除非您想从其他域访问资源,否则上述检查应解决您的问题。