asp.net FileUpload.FileName返回完整路径,即不需要时

Rea*_*eic 16 asp.net

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

Jos*_*osh 24

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

var fileName = Path.GetFileName(somePath);
Run Code Online (Sandbox Code Playgroud)

HttpUtility静态类来编码它.

var encoded = HttpUtility.HtmlEncode(fileName);
Run Code Online (Sandbox Code Playgroud)

  • 好的,你的全路径是什么意思.因为如果你调用`Path.GetFileName("C:\ mypath\myfile.txt");`那么你将得到"myfile.txt". (2认同)

bin*_*les 5

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

IE8本地目录路径设置

因此,如果您不想保留完整路径信息,如果您想要支持IE,则最明确地删除路径是最安全的(不确定是否有任何其他浏览器具有此类设置).

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

string fileNameOnly = somePath.Split('\\').Last();
Run Code Online (Sandbox Code Playgroud)