2010-01-18 73 views
11

我有一個流式處理jpeg的aspx頁面。它設置內容類型,然後寫入響應流。如果我直接查看這些圖像,他們可以提供一種享受,但如果我使用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」而不是「圖片」時,我遇到了類似的問題 – Ved

回答

1

fancybox腳本文件中存在一個正則表達式,需要對其進行修改才能允許正確處理文件擴展名。

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

我剛纔爲aspx添加了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+)