2012-05-22 31 views
1

我在這裏試圖在IE7中使用ASP.net處理程序或另一種顯示二進制文件的方式顯示.swf基於圖像的文件時遇到了很多困難.swf文件(即來自數據庫)。利用HTTP處理程序(Handler.ashx)我希望導航到該URL並顯示.swf圖像,類似於使用瀏覽器打開.swf文件。我根本無法得到這個工作...使用ASP.net處理程序顯示數據庫中的.swf圖像文件

我已經嘗試了許多不同的方法,以顯示這些值,它們在下面列出,其次是與我在我的應用程序中使用的代碼類似的代碼片段。

1)當改變在標題中使用 附件的內容處置值,.swf文件將被保存,並且可以使用 瀏覽器打開。

2)當使用內容類型爲「image/png」的.png文件時,此 完美工作。

public void ProcessRequest (HttpContext context) { 

    Byte[] swfFile = File.ReadAllBytes("file.swf"); 

    context.Response.Buffer = true; 
    context.Response.Clear(); 
    context.Response.ContentType = "application/x-shockwave-flash"; 
    context.Response.AddHeader("Content-Disposition", "filename=file.swf"); 
    context.Response.BinaryWrite(swfFile); 
    context.Response.Flush(); 
    context.Response.End(); 
} 

任何幫助將不勝感激,謝謝提前!

+0

如何在網頁上初始化它?你有沒有把它放在html頁面的對象中?它是一個Flash文件,你不能就這樣扔掉它。 – Aristos

+0

我試圖將其嵌入的對象,並在源引用ASHX頁面,是這樣的:<對象寬度=「400」 HEIGHT =「400」><嵌入SRC =「handler.ashx」> – glyph5

+0

我建議使用像Fiddler,Charles等請求監視器來查看磁盤上的.swf的響應頭;然後只複製你的處理程序中的那些。 – devstuff

回答

0

您的代碼將在Chorme瀏覽器中完美工作。但不是在IE8或Firefox 27 而不是直接flusing對象的頁面,有OBJECT標籤頁,並調用另一個網頁,以獲得SWF流。

  1. 頁與OBJECT元件

<object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.adobe.com/pub/" width="100%" height="100%" id="myMovieName" > <param name="movie" value="http://PageWhichGivesObjectStream.aspx?id=1"/> <param name="quality" value="high"/> <param name="bgcolor" value="#FFFFFF"/> <param name="play" value="true"/> <param name="loop" value="true"/> <param name="bgcolor" value="#FFFFFF"/> <param name="allowFullScreen" value="true"/> <param name="salign" value="l"/> </object>

  1. 頁其給出物體流

    Response.ContentType = "application/x-shockwave-flash" Response.BinaryWrite(FlashObjectBinary) Response.End()

這適用於IE8

相關問題