1

ここでは、ASP.netハンドラーまたはバイナリ.swfファイル(つまりデータベースから)を表示する別の手段を使用して、IE7で.swfイメージベースのファイルを表示しようとすると非常に困難になります。HTTPハンドラー(Handler.ashx)を利用するブラウザーを利用して.swfファイルを開くのと同じように、そのURLに移動して.swfイメージを表示したいと思っていました。私はこれを機能させることができません...

これらの値を表示するためにさまざまな方法を試しました。以下にそれらの方法を示し、その後にアプリケーションで使用しているものと同様のコードスニペットを示します。

1)添付ファイルを使用するようにヘッダーのcontent-disposition値を変更すると、.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();
}

どんな助けでも大歓迎です、よろしくお願いします!

4

1 に答える 1

0

コードは Chorme ブラウザで完全に動作します。ただし、IE8 や Firefox 27 ではそうではありません。オブジェクトをページに直接フラッシュする代わりに、OBJECTタグ付きのページを作成し、別の Web ページを呼び出して 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で動作します

于 2014-03-19T05:32:51.387 に答える