16

根据我对 asp.net FileUpload.FileName 的理解,它返回完整路径,而在 Firefox 中它只返回文件名。我将如何从返回的字符串中删除路径,因为我只需要 html 编码的文件名。

4

3 回答 3

24

您可以使用Path静态类来获取文件名。

var fileName = Path.GetFileName(somePath);

以及对它进行编码的HttpUtility静态类。

var encoded = HttpUtility.HtmlEncode(fileName);
于 2012-08-24T20:52:37.617 回答
5

因此,在工具 -> Internet 选项 -> 安全下有一个 IE 设置(不仅在 IE8 中,而且在较新的版本中),允许您在文件上传时包含或排除本地路径。

IE8本地目录路径设置

出于这个原因,如果你不想保留完整的路径信息,如果你想支持 IE(不确定其他浏览器是否有这样的设置),最安全的方法是显式删除路径。

正如 Josh 所提到的, Path.GetFileName(...) 是一个不错的选择。您还可以将 string.Split 与 Linq 结合使用。

string fileNameOnly = somePath.Split('\\').Last();
于 2014-08-15T16:36:04.990 回答
1
Path.GetFileName(Request.Files["file"].FileName)
于 2016-10-06T19:43:56.610 回答