我有一个流式传输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);
}
}
}
任何帮助?
答案 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()。 (您的浏览器在直接打开时可能会假设内容类型)