我在尝试使用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();
}
非常感谢任何帮助,谢谢你!
答案 0 :(得分:0)
您的代码将在Chorme浏览器中完美运行。但不是在IE8或Firefox 27中。
不要直接将对象刷新到页面,而是使用带有OBJECT
标记的页面,并调用另一个网页来获取SWF流。
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>
提供对象流的页面
Response.ContentType = "application/x-shockwave-flash"
Response.BinaryWrite(FlashObjectBinary)
Response.End()
这适用于IE8