5

我正在开发一个将文件名存储在数据库中的应用程序。对于 Mozilla 和 Chrome,它只显示 FileName,但在 IE 中它显示文件的完整路径。现在我想检查给定的文件名是文件名还是文件路径。有什么办法吗?

这是我的代码:

public ActionResult Save(IEnumerable<HttpPostedFileBase> attachments)
{
  byte[] image = null;
  var file = attachments.First();
  // Some browsers send file names with full path. We only care about the file name.
  string filePath = Server.MapPath(General.FaxFolder + "/" + file.FileName);
  file.SaveAs(filePath);
  FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
  using (BinaryReader br = new BinaryReader(fs))
  {
    image = br.ReadBytes((int)fs.Length);
  }
  TempData["Image"] = image;
  System.IO.File.Delete(filePath);            
  return Json(new { status = "OK", imageString = Convert.ToBase64String(image) }, "text/plain");
}
4

2 回答 2

6

好吧,如果你只在任何浏览器中获取文件名,那么你应该写

Path.GetFileName(e.fileName);

它只会在任何浏览器中返回文件名谢谢

于 2014-06-09T05:56:17.827 回答
2

而不是检查文件是否有路径,你可以做的就是使用 GetFileName(path);方法

于 2014-06-09T05:58:23.147 回答