11

I've got an aspx page that streams jpeg's. It sets the content type and then writes to the response stream. If I view the images directly they work a treat, but if I use fancybox 1.2.6 I get the following. alt text

Using fancybox 1.2.1 the images do show.

Here is the code that is pushing out the image.

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            using (Stream responseStream = response.GetResponseStream())
            {
                using (Image outImg = Image.FromStream(responseStream))
                {
                    Response.Clear();
                    Response.ContentType = "image/jpeg";
                    outImg.Save(Response.OutputStream, ImageFormat.Jpeg);
                }
            }
        }

Any help?

4

4 に答える 4

15

私たちの画像にも拡張子はなく、ashx ハンドラーから出力されただけです。

最終的に、次のように fancybox 宣言に 'type':'image' を追加しました。

$('.fb1').fancybox({'titlePosition':'inside','type':'image'})

これは完璧に機能しました。

于 2010-12-22T21:35:53.940 に答える
2

Fancybox FAQのポイント 6 を参照してください。

FancyBox は URL からコンテンツ タイプを推測しますが、間違っている場合もあります。解決策は、次のようにタイプを強制することです- $(".selector").fancybox({'type' : 'image'});

(バージョン 1.3 以降が必要)

于 2013-09-24T12:42:08.680 に答える
1

ファンシーボックス スクリプト ファイル内に正規表現があり、そのファイル拡張子を正しく処理できるようにするために修正する必要がありました。

imageRegExp = /\.(aspx|jpg|gif|png|bmp|jpeg)(.*)?$/i;

今のところ aspx を追加したところですが、正しく機能させるために追加の作業を行う必要があります。

于 2010-01-19T08:55:02.410 に答える
0

コンテンツを公開するサーバー側のコードを確認できますか? content-type が正しく設定されていないか、データを出力する前に設定されているようです。新しいコンテンツ タイプを出力する前に、Response.Clear() を試してみてください。(ブラウザは、直接開いたときにコンテンツ タイプを想定している可能性があります)

于 2010-01-18T20:15:45.120 に答える