解决方法
这取决于浏览器.
大多数浏览器(FF,Chrome,Safari)都不会发送此信息,主要是出于安全考虑.但是,似乎某些版本的IE确实发送了完整的客户端路径.
该值将存储在HttpPostedFile的FileName属性中.
大多数浏览器(FF,Chrome,Safari)都不会发送此信息,主要是出于安全考虑.但是,似乎某些版本的IE确实发送了完整的客户端路径.
该值将存储在HttpPostedFile的FileName属性中.
The documentation for FileName
should help.它说:
FileName: The name of the client’s file,including the directory path.
在以下代码中,postingFile.FileName将根据浏览器而有所不同.因此,始终只提取文件名很重要,您也可能会很幸运并获得clientPath.
public ActionResult UploadFile(HttpPostedFile postedFile) { var clientPath = IO.Path.GetDirectoryName(postedFile.FileName); var filename = IO.Path.GetFileName(postedFile.FileName); ... Save the file,etc ... }