Fancybox无法从Chrome中的HttpRespone加载图片

时间:2011-06-15 12:58:32

标签: asp.net google-chrome fancybox response httpresponse

我在Google Chrome中遇到了fancybox的问题。当我点击我的链接时,它会显示:

  

无法加载请求的内容。   请稍后再试。

我的网站是在ASP.NET中。这是我网站链接的代码:

<a rel="example_group" id="aRel" runat="server" href='<%# Eval("ElevatedLink") %>'
     title='<%# Eval("LongDesc") %>'>
</a>

链接到我的图像是aspx文件,它将图像写入输出缓冲区,如下所示:

 byte[] buffer = Common.GetBinaryData(list, iFolder, iMovId);

 if (buffer == null || buffer.Length == 0)
     return;
 Response.Clear();
 Response.ContentType = GetMimeType(name, elevatedWeb);
 Response.BufferOutput = true;
 Response.OutputStream.Write(buffer, 0, buffer.Length);
 Response.Flush();
 Response.Close();

我的fancybox声明:

$(document).ready(function () {
   $("a[rel=example_group]").fancybox({
                'transitionIn': 'none',
                'transitionOut': 'none',
                'titlePosition': 'over',
                'showNavArrows': 'true',
                'titleFormat': function (title, currentArray, currentIndex, currentOpts) {
                 return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
                }
            });

如果我按照href中提供的网址加载图片,则会在Chrome浏览器中显示,但在fancybox中显示错误。 MIME类型设置为图像,没关系。 此解决方案适用于Firefox,Safari甚至在IE中。

请帮忙。

1 个答案:

答案 0 :(得分:0)

试试这个:

var dataLength = data.Length;

Response.Clear();

Response.ContentType = "correct MIME type";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", name));
Response.AddHeader("content-length", data.Length.ToString());

Response.Buffer = true;

var buffer = new byte[1024];
int bytes;

var outputStream = Response.OutputStream;

using (var stream = data.OpenBinaryStream())
{
     while (dataLength > 0 && (bytes = stream.Read(buffer, 0, buffer.Length)) > 0)
     {
          outputStream.Write(buffer, 0, bytes);
          dataLength -= bytes;
     }
}

Response.Flush();
Response.Close();
Response.End();

其中“data”是包含图像数据的字节数组,“name”是文件名。