2010-01-18 3 views
11

У меня есть страница aspx, которая передает потоки jpeg's. Он устанавливает тип содержимого, а затем записывается в поток ответов. Если я просматриваю изображения напрямую, они работают, но если я использую fancybox 1.2.6, я получаю следующее. alt text http://img686.imageshack.us/img686/3348/fancybox.pngFancybox не показывает корректное потоковое изображение

Использование 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

Спасибо. У меня такой же вопрос. – daGrevis

+0

Каков тип контента, заданный для использования fancybox? У меня была аналогичная проблема, когда мой тип контента был установлен в 'ajax', а не 'image' – Ved

ответ

1

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

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

Я только что добавил aspx, но вам нужно будет выполнить дополнительную работу, чтобы она функционировала правильно.

0

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

+0

Я добавил код в сообщение. – RubbleFord

15

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

Мы закончили добавление 'типа': 'изображения' к объявлению FancyBox как:

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

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

+0

Мне пришлось добавить $ ('. Fb1'). Fancybox ({'type': 'image'}) отдельно, чтобы он работал. – MrOli3000

2

См пункт 6 в Fancybox FAQ:

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

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

Смежные вопросы