Fancybox не показывает потоковое изображение правильно - PullRequest
11 голосов
/ 18 января 2010

У меня есть страница aspx, которая передает потоки в формате jpeg. Он устанавливает тип контента и затем записывает в поток ответов. Если я смотрю изображения напрямую, они работают, но если я использую fancybox 1.2.6, я получаю следующее. alt text

При использовании 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 ]

15 голосов
/ 23 декабря 2010

Наши изображения также не имели расширений и были просто отправлены из обработчика ashx.

Мы закончили тем, что добавили 'type': 'image' к объявлению fancybox как:

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

Который работал отлично.

2 голосов
/ 24 сентября 2013

См. Пункт 6 в FAQ Fancybox :

FancyBox угадывает тип контента по URL, но иногда это может быть неправильно. Решение состоит в том, чтобы заставить ваш тип, например, так - $ (". селектор"). fancybox ({'type': 'image'});

(требуется версия 1.3 +)

1 голос
/ 19 января 2010

В файле сценария fancybox есть регулярное выражение, которое необходимо изменить, чтобы разрешить правильное обращение с этим расширением.

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

Я только что добавил aspx, но для правильной работы потребуется дополнительная работа.

0 голосов
/ 18 января 2010

Можем ли мы увидеть ваш серверный код, который публикует контент?Похоже, что тип содержимого установлен неправильно или был задан до того момента, когда вы выводите данныеВозможно, вы захотите попробовать Response.Clear () перед выводом вашего нового типа контента.(Ваш браузер может использовать тип контента при его непосредственном открытии)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...