C# 在url中显示具有特殊字符的图像
使用,我正在读取一个图像文件夹,然后将这些图像显示在网页上 目前,除了具有特殊字符的图像外,所有这些都可以正常工作 带有“&”符号的名称显示断开的图像链接。有没有什么方法可以在不更改图像名称的情况下显示图像 我试过了C# 在url中显示具有特殊字符的图像,c#,asp.net,special-characters,C#,Asp.net,Special Characters,使用,我正在读取一个图像文件夹,然后将这些图像显示在网页上 目前,除了具有特殊字符的图像外,所有这些都可以正常工作 带有“&”符号的名称显示断开的图像链接。有没有什么方法可以在不更改图像名称的情况下显示图像 我试过了 var images = from image in Directory.EnumerateFiles(Server.MapPath("~/_resources/game_icon"), "*.*", SearchOption.AllDirectories)
var images =
from image in Directory.EnumerateFiles(Server.MapPath("~/_resources/game_icon"), "*.*", SearchOption.AllDirectories)
let filename = Path.GetFileNameWithoutExtension(image)
let relativeLocation = Path.GetFullPath(image).Replace(Server.MapPath("~"), string.Empty).Replace("\\", "/")//.Replace(Path.GetFileName(image), HttpUtility.UrlEncode(Path.GetFileName(image)))
let splitted= string.Join("/", relativeLocation.Split('/').ToList().Select(p => Server.UrlEncode(p)))
let url = ResolveUrl("~/" + splitted)
where image.ToLower().Contains(txtGameName.Text.ToLower())
select new
{
Filename = filename,
Url = url
};
但是所有图像都会中断。在图像名称上使用HttpServerUtility.HtmlEncode。请参见我认为在这种情况下,最好使用Server.UrlEncode。这里有一个链接我发现这只是一个潜在危险的请求。从客户端检测到路径值错误 使用
修复所有问题。我无法在静态环境中访问该问题。这发生在一个按钮点击。使用
Server.HtmlEncode
也不起作用。图像仍然损坏。图像URL现在是
是,请按照@Timur的建议使用HttpUtility.UrlEncode。对不起,我有一个高级时刻。如果我使用它,则不会显示任何图像
此图像一直工作到UrlEncode
您可能需要在路径的每个单独组件上运行UrlEncode,类似于string.Join(“/”,path.Split(“/”).ToList()。选择(p=>Server.UrlEncode(p))
Server.UrlEncode
也会更改URL中的/
,然后会打断每个图像。
<system.web>
<httpRuntime requestPathInvalidCharacters="<,>,%,&,:,\,?" />
</system.web>