- PR -

Response.BinaryWriteメソッドで、IE上にWordのファイルを表示したい。

1
投稿者投稿内容
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-24 18:07
現在、C#でWebアプリケーションを作成しており、サーバー上に保存されているWordのファイルを、ブラウザに表示する方法を試みているのですが、うまくいきません。

ソースは、以下のような内容です。

----------------------
//ファイルの内容をバイト型の配列で取得
FileStream objFileStream = new FileStream("ファイルのフルパス名",FileMode.Open);
long lngFileSize = objFileStream.Length;

byte[] bytBuffer = new byte[(int)lngFileSize];
objFileStream.Read(bytBuffer,0,(int)lngFileSize);
objFileStream.Close();

//Responseオブジェクトへの設定
Response.Clear();
Response.ContentType = "application/ms-word";
Response.ApendHeader("Content-Disposition","inline;filename=" + HttpUtility.UrlEncode("ファイルのフルパス名");

//ファイルを表示
Response.BinaryWrite(Buffer);

--------------------

以上です。
このコードを実行すると、Wordファイルのダウンロードのダイアログが表示されます。「開く」を選択すると、一応ブラウザ上にWordのファイルを表示できるのですが、このダイアログを出さないでブラウザに表示させたいのです。
一度、あるプロジェクトでこれとほぼ同じ方法で、実現していたのは覚えているのですが、あと何が足りないのかが解りません。
どうかよろしくお願いいたします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-09-24 19:38
カレー落武者さん、こんばんは。

引用:

このコードを実行すると、Wordファイルのダウンロードのダイアログが表示されます。「開く」を選択すると、一応ブラウザ上にWordのファイルを表示できるのですが、このダイアログを出さないでブラウザに表示させたいのです。


<object>タグを使うというのはどうでしょうか?

例:
<html>
<body>
<object data="hoge.doc">
</object>
</body>
</html>

IEのセキュリティゾーンがイントラネットに設定されているサイトで試したらダイアログなしで表示されました。
後はobjectのdata属性に、BinaryWriteするWebフォームを指定してうまくいくかどうかですが、これは試していません。
1

スキルアップ/キャリアアップ(JOB@IT)