0

この質問では、画像のフォルダーを読み取り、それらの画像を Web ページに表示しています。

現在、特殊文字を含む画像を除いて、すべて機能します。

「&」記号が付いた名前は、壊れた画像リンクを示しています。画像名を変更せずに画像を表示する方法はありますか?

私はもう試した

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 に答える