0

メディア ファイル (.avi fe) を格納する SQL データベースがあります。aspx ページ (VIDEOPAGE) のビデオをバイト配列として抽出し、これを呼び出す別の Web ページに送信し (この方法である必要があります)、Windows Media Player コントロールを提示する html オブジェクト タグを使用してビデオを表示します。

私が使用する構文は次のとおりです。

Response.ContentType = contentType;
Response.AddHeader("Content-Disposition", string.Format("attachment; filename ={0}",myAttachment.FileName));
Response.OutputStream.Write(myAttachment.Attachment, 0, myAttachment.Attachment.Length)

これは、すべての mpeg および wmv ファイルでは問題なく動作しますが、avi ファイルでは失敗します!! contentType 変数には、正しいコンテンツ タイプが含まれています (これは、次の理由でわかっています。

オブジェクト タグを使用せず、単純にデータベースから avi ファイルと上記の構文を使用して VIDEOPAGE ページをロードすると、「開くか..」ダイアログ ボックスが表示され、[OK] をクリックすると、ビデオが表示されます。 WMP で表示します。

と もに変更してみましContent-Dispositionた。何もない..hiddeninline

何か案は?

4

4 に答える 4

2

Content-Dispositionまず、ビデオを Web ページに埋め込むだけの場合、ヘッダーは必要ないので、その行を削除してください。

次に、Content-Type動画の種類ごとに使用している値を教えてください。

Internet Explorer やその他の一部のブラウザはヘッダーを無視してファイル拡張子に依存する可能性があるため、ブラウザが Windows Media Player でビデオを開いたからといって、正しいタイプを使用しているとは限りません。したがって、ファイル名が .avi であるという事実は、IE が WMP でビデオを再生するのに十分です。Content-Type

于 2009-12-31T14:25:18.203 に答える
1

content-type を正しく設定し、よく知られている filetype-suffix をファイル名に含めていることを確認してください (例: " blah.avi " )。ブラウザーは、コンテンツ タイプを認識しない場合、または関連付けが設定されていない場合に、filetype-suffix を使用することがよくあります。

于 2010-01-01T02:18:34.930 に答える
0

Content Disposition ヘッダーは次のようになります。

Content-Disposition: attachment; filename="filename.avi"

コードを読み間違えているのかもしれませんが、次のようになります。

Content-Dispositiona) andの後にスペースがありません

b) ファイル名を引用符で囲んでいません。

AVI ファイルでのみ問題が発生しているため、これはありそうにありませんが、mpeg ファイルと wmv ファイルは OS によりネイティブであるため、動作しない場合でも動作するのは偶然かもしれません。

これをテストする 1 つの方法は、コンテンツ タイプを ".pdf" のようなニュートラルなものに変更し、何が起こるかを確認することです。

于 2009-12-31T10:15:58.073 に答える
0

行を削除してみてくださいResponse.AddHeader("Content-Disposition", ...

于 2009-12-31T10:07:57.000 に答える