在网址中显示带有特殊字符的图像

时间:2013-01-16 11:12:43

标签: c# asp.net special-characters

使用this question,我正在阅读图像文件夹,然后在网页上显示这些图像。

目前,除了具有特殊字符的图像外,一切正常。

带有'&'的名字标志显示一个破碎的图像链接。有什么办法可以在不更改图像名称的情况下显示图像吗?

我试过

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
            };

但所有图片都破了。

3 个答案:

答案 0 :(得分:1)

我相信在这种情况下最好使用Server.UrlEncode。这是一个链接http://msdn.microsoft.com/en-us/library/zttxte6w(v=vs.100).aspx

答案 1 :(得分:0)

在图像名称上使用HttpServerUtility.HtmlEncode。见http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx

答案 2 :(得分:0)

我发现这只是一个A potentially dangerous Request.Path value was detected from the client错误。

使用

<system.web>
    <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,:,\,?" />
</system.web>

修复所有问题。