Fancybox未正确显示流式图像

时间:2010-01-18 15:50:14

标签: asp.net image fancybox

我有一个流式传输jpeg的aspx页面。它设置内容类型,然后写入响应流。如果我直接查看图像,他们会有一种享受,但如果我使用fancybox 1.2.6,我会得到以下内容。 alt text http://img686.imageshack.us/img686/3348/fancybox.png

使用fancybox 1.2.1,图像会显示。

以下是推出图片的代码。

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

任何帮助?

4 个答案:

答案 0 :(得分:15)

我们的图片也没有扩展,只是从ashx处理程序发出。

我们最终将'type':'image'添加到fancybox声明中,如:

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

完美无缺。

答案 1 :(得分:2)

请参阅Fancybox FAQ中的第6点:

  

FancyBox从网址中猜测内容类型,但有时可能是错误的。   解决方案是强制你的类型,如此 -   $(“。selector”)。fancybox({'type':'image'});

     

(必需的版本1.3 +)

答案 2 :(得分:1)

fancybox脚本文件中有一个需要修改的正则表达式,以便允许正确处理该文件扩展名。

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

我刚刚添加了aspx,但需要做一些额外的工作才能使其正常运行。

答案 3 :(得分:0)

我们可以看到发布内容的服务器端代码吗?看来内容类型未正确设置或在输出数据之前设置。您可能希望在输出新内容类型之前尝试使用Response.Clear()。 (您的浏览器在直接打开时可能会假设内容类型)