3

varbinary(max)以下の C# コードを使用して、.doc ファイルを SQL Server データベースに保存しています。

ファイルを保存することはできますが、ファイルを取得して Web ページにコンテンツを表示したい場合、コードがファイルをダウンロードしていて、その処理方法について非常に混乱しています。

私が探している正確な機能は、naukri.comが履歴書をアップロードしてプレビューを表示する方法です。私のコードは次のとおりです。

byte[] fileContent = new byte[fuResume.PostedFile.ContentLength];
fuResume.PostedFile.InputStream.Read(fileContent, 0, fuResume.PostedFile.ContentLength);
//lblAppliedMessage.Text = ByteArrayToString(fileContent);

//lblAppliedMessage.Text = BitConverter.ToString(fileContent).Replace("-", string.Empty);
byte[] btYourDoc;
btYourDoc = fileContent;

Response.ContentType = "application/ms-word";
Response.AddHeader("Content-Disposition", "inline;filename=yourfilename.doc");
Response.OutputStream.Write(btYourDoc, 0, fileContent.Length);

Response.BinaryWrite(btYourDoc);

Response.End();
4

3 に答える 3

2

ファイルが表示されずにダウンロードされる理由は、コンテンツタイプをapplication/ms-wordに設定しているためです。これにより、ブラウザにファイルをダウンロードするように指示されます(そのタイプのファイルはネイティブに処理できないため、外部アプリに委任されます)。

MS Word形式を解釈し、それをブラウザーで表示可能なもの(HTML、それを実行するプラグインなど)に変換する方法を知っているコードが必要になります。生のWord文書を保存し、それを同じ状態でクライアントに送り返すことは、基本的にはWordファイルをダウンロードさせるだけです。

于 2011-11-30T22:01:23.477 に答える
0

スクイルマンは正しいです。Word から HTML への変換を行うサード パーティ コンポーネントは数多くあります。

イントラネット サイトにより適したもう 1 つのオプションは、Word をサーバーにインストールすることです。

この例は次のとおりです。

http://www.c-sharpcorner.com/UploadFile/munnamax/WordToHtml03252007065157AM/WordToHtml.aspx

事実上、ドキュメントが開かれ、HTML として保存され、その後の要求でファイルの HTML バージョンをプレビュー用に取得できます。

ただし、オフィス オートメーション サーバー側には多くの落とし穴があります。詳細については、 http://support.microsoft.com/kb/257757を参照してください。

于 2011-11-30T22:10:02.490 に答える
0

これは、ファイルをダウンロードするか表示するかの最終結果がユーザー次第である良いものです。ここにリンクがありますが、@Squillman は、ダウンロードするように指示する応答ヘッダーを配置することで正しいです。

于 2011-11-30T22:33:22.887 に答える