这是我上传图片的MVC控制器。我正试图检查一下
文件存在,然后删除旧文件并保存新文件。我在System.IO.File.Delete()
收到错误,告诉我文件已经在使用,但我无法弄清楚我把它打开的地方以及如何关闭它。
[HttpPost]
public ActionResult UploadImage(int? id, HttpPostedFileBase file, EmployeeViewModel employee)
{
Employee employeeData = db.Employees.Find(id);
if (file != null && file.ContentLength > 0)
{
// Assemble File Path/Extension String
string[] fileSplit = file.FileName.Split('.');
string extension = fileSplit[1];
var fileNameNew = "employeeImage-" + id + "." + extension;
var path = Path.Combine(Server.MapPath("~/Content/employeeImages/"), fileNameNew);
var fileExists = System.IO.File.Exists(path);
if (fileExists)
{
System.IO.File.Delete(path);
file.SaveAs(path);
}
else
{
file.SaveAs(path);
}
}
return RedirectToAction("Edit", new { id = id });
}
答案 0 :(得分:1)
可能有一个(web)方法(就像一个GET请求)或其他代码来检索将它作为流打开的图像(而不是url)。
答案 1 :(得分:0)
最可能的答案是:
答案 2 :(得分:0)
由于我无法找到POST请求的问题,我意识到必须在GET请求中将我带到该页面。事实证明我正在调用Image.FromFile()而不是在那个GET请求中关闭它。