使用ASP.net处理程序从数据库显示.swf图像文件

时间:2012-05-22 18:04:52

标签: asp.net flash handler

我在尝试使用ASP.net处理程序或其他显示二进制.swf文件(即来自数据库)的方法在IE7中显示基于.swf图像的文件时遇到了很大的困难。利用HTTP处理程序(Handler.ashx)我希望导航到该URL并显示.swf图像,类似于使用浏览器打开.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();
}

非常感谢任何帮助,谢谢你!

1 个答案:

答案 0 :(得分:0)

您的代码将在Chorme浏览器中完美运行。但不是在IE8或Firefox 27中。 不要直接将对象刷新到页面,而是使用带有OBJECT标记的页面,并调用另一个网页来获取SWF流。

  1. 包含OBJECT元素的网页
  2. <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()

    2. 这适用于IE8