【问题标题】:Fancybox not showing streamed image correctlyFancybox 未正确显示流式图像
【发布时间】:2011-01-06 10:21:57
【问题描述】:

我有一个流 jpeg 的 aspx 页面。它设置内容类型,然后写入响应流。如果我直接查看图像,它们会很有效,但如果我使用 fancybox 1.2.6,我会得到以下信息。

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

有什么帮助吗?

【问题讨论】:

  • 谢谢。我也有同样的问题。
  • 使用fancybox设置的内容类型是什么?当我的内容类型设置为“ajax”而不是“图像”时,我遇到了类似的问题

标签: asp.net image fancybox


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      效果很好。

      【讨论】:

      • 我必须单独添加 $('.fb1').fancybox({'type':'image'}) 才能工作。
      【解决方案4】:

      Fancybox FAQ中的第6点:

      FancyBox 从 url 猜测内容类型,但有时它可能是错误的。 解决方案是强制你的类型,就像这样 - $(".selector").fancybox({'type' : 'image'});

      (需要 1.3+ 版本)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        相关资源
        最近更新 更多