2009-08-28 16 views
2

私は、データベースからのレポートを表示するWebアプリケーションをサポートしています。しばしば、レポートには添付ファイル(通常はデータベースに保存されているイメージ/ドキュメント)が含まれます。.RTFを提供する方法

我々は

(我々はPDFファイル、RTFs、および様々な画像フォーマットをサポートする)データベースから添付ファイルをストリーム動的.htmのリソースを介してアタッチメントを提供し、それが添付の種類に基づいてコンテンツ・タイプを移入

RTFの場合、問題が発生しています。多くのWindowsユーザーは、デフォルトでは 'application/rtf'コンテンツタイプ(に* .rtfファイル拡張の関連付けがあります)のアサーションを持っていないようです。その結果、添付ファイルへのリンクをクリックしてもInternet Explorer 6では何も行われません。

コンテンツタイプとして「application/msword」を返すと、リンクをクリックしたときにRTFが表示されるように見えますMS Officeがインストールされている(一部のユーザーはこれをインストールしておらず、OpenOfficeなどの代替RTFリーダーを使用します)。

このアプリケーションは公開されているため、ユーザーのマシン設定を制御することはできません。

ここで誰もこれを解決しましたか?そしてどうやって?ありがとう!

+0

私は、これはServerFaultの上属すると思います。 –

+2

これはServerFaultではありません。彼のウェブアプリの問題です。 WebアプリケーションはServerFaultにはなりません。 –

答えて

0

ワードパッド(すべてのWindowsマシン上にあります)はRTFファイルを表示できます。 「アプリケーション/ワードパッド」のコンテンツタイプはありますか?

また、RTFファイルの稀少性を考えると、サーバーサイドコンポーネントを使用してRTFファイルを開いたり、他の形式(PDFやストレートHTMLなど)に変換したり、クライアントを要求しています。私はあなたがサーバ側でどの言語/プラットフォームを使用しているのかわからないので、私はあなたにこれを使用するように伝えるべきか分からない。

4

コンテンツタイプを強制的にダウンロードするにはapplication/octet-streamを使用してください。ダウンロードしたら、.rtfファイルを処理するために登録されているものであれば、それを見ることができます。 Content-Typeヘッダに加えて

+0

私が言及していたことをもう一度忘れてしまった:私たちは理想的には、(ダウンロードする代わりに)ブラウザのフレーム内にドキュメントを表示したいと思うだろう。 Office 2003をインストールすると、ブラウザ内でアプリケーション/ mswordドキュメントが開かれているように見えますが、Office 2007ではMS Wordの新しいインスタンス内でドキュメントが既定で開かれているようです。しかし、これは私たちが制御することができないクライアント側の動作です。したがって、Webアプリケーションの範囲外です。 –

+0

もう1つの問題は、コンテンツを返すリソースが* .htmなので、拡張子が* .htmのファイルをダウンロードしてもファイルの名前を変更せずにファイルを開くことができないことです(ユーザベースは必ずしも技術的なものではありません) 。 添付ファイルの種類に基づいてリソース名の拡張子を動的に変更することはできますが、これらの添付ファイルはブラウザ内に表示するだけですので、その使用例を実際に処理する必要はありません。 –

+0

Wordは、私が知っている唯一の(クライアント側の)アプリケーションで、ブラウザ内にRTFを表示します。あなたは他の選択肢に過ぎないが、それをHTML/PDFに変換してそれを表示することだ(おそらくHTMLだが、拡張の問題がある) –

3

、あなたはまた、次の項目を追加する必要があります。

Content-Disposition: attachment; filename=my-document.rtf 
関連する問題