做文件名网络安全这不是编码的URL的更多的事情要做,我注意到一个问题,你可以在IIS苏哈一个有效的文件名作为“测试& test.jpg放在”但这不能因下载到&导致错误。还有其他的字符也可以在Windows中有效,但不适用于网页。如何使用C#
我快速的解决方案是使用下面的正则表达式保存前更改文件名...
public static string MakeFileNameWebSafe(string fileNameIn)
{
string pattern = @"[^A-Za-z0-9. ]";
string safeFilename = System.Text.RegularExpressions.Regex.Replace(fileNameIn, pattern, string.Empty);
if (safeFilename.StartsWith(".")) safeFilename = "noname" + safeFilename;
return safeFilename;
}
,但我不知道是否有任何更好的内置这样做的方法。
我通常会做这样的事情。 Guid或DB行标识,但在这种情况下,我需要保留文件名。我从来没有遇到过这个问题。我想人们不会经常把&文件名中,但它最终肯定会发生:) –