0

带着这个问题,我正在阅读一个图像文件夹,然后在网页上显示这些图像。

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

带有“&”符号的名称显示损坏的图像链接。有什么方法可以显示图像而无需更改图像名称?

我试过了

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

但是所有图像都破裂了。

4

3 回答 3

1

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

于 2013-01-16T11:22:49.383 回答
0

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

于 2013-01-16T11:14:18.570 回答
0

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

使用

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

修复所有问题。

于 2013-01-16T12:12:55.547 回答