代码之家  ›  专栏  ›  技术社区  ›  RubbleFord

FancyBox未正确显示流图像

  •  11
  • RubbleFord  · 技术社区  · 15 年前

    我有一个ASPX页面可以流式处理jpeg。它设置内容类型,然后写入响应流。如果我直接查看这些图片,它们会很有效,但是如果我使用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 回复  |  直到 11 年前
        1
  •  15
  •   ChrisLively    14 年前

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

    我们最后将'type':'image'添加到FancyBox声明中,如下所示:

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

    效果很好。

        2
  •  2
  •   Cristan    11 年前

    见第6点 Fancybox FAQ :

    FancyBox根据URL猜测内容类型,但有时可能是错误的。 解决方法是强制你的类型,就像这样- $(“.selector”).fancybox('type':'image'));

    (所需版本1.3+)

        3
  •  1
  •   RubbleFord    15 年前

    FancyBox脚本文件中有一个正则表达式,需要对其进行修改,以便正确处理该文件扩展名。

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

    我现在刚添加了ASPX,但为了使它正常工作,需要做一些额外的工作。

        4
  •  0
  •   Jason Kealey    15 年前

    我们可以看到发布内容的服务器端代码吗?内容类型似乎设置不正确,或者设置在输出数据的点之前。在输出新的内容类型之前,您可能需要尝试response.clear()。(您的浏览器在直接打开时可能会假定为内容类型)

    推荐文章