使用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
};
但所有图片都破了。
答案 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="<,>,%,&,:,\,?" />
</system.web>
修复所有问题。