I have problem with fancybox in Google Chrome. When I click on my link it shows:
The requested content cannot be loaded. Please try again later.
My site is in ASP.NET. This is the code for my link on site:
<a rel="example_group" id="aRel" runat="server" href='<%# Eval("ElevatedLink") %>'
title='<%# Eval("LongDesc") %>'>
</a>
Link to my image is aspx file which writes image to the output buffer, something like this:
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();
My fancybox declaration:
$(document).ready(function () {
$("a[rel=example_group]").fancybox({
'transitionIn': 'none',
'transitionOut': 'none',
'titlePosition': 'over',
开发者_如何学C 'showNavArrows': 'true',
'titleFormat': function (title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
}
});
If I load image by URL provided in href it's shows in Chrome browser, but in fancybox it's show above error. MIME type is set to image, it's ok. This solution works in Firefox, Safari even in IE.
Please help.
Try this:
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();
Where "data" is byte array containing image data and "name" is file name.
精彩评论