質問

私はこれは私が願っています簡単な質問であると思います。私はいくつかのレポートを作成し、ユーザーが彼/彼女のローカルマシンに保存するように促されている必要があります。私はこれをした最後の時間は、私がWebサーバにファイルを書いた後、Responseオブジェクトを介してクライアントにそれを送りました。

Webサーバ上で作成するには、

            TextWriter tw = new StreamWriter(filePath);

クライアントに送信する。

           page.Response.WriteFile(path);

質問はウェブサーバへの物理的なファイルの書き込みをスキップして、応答にドキュメントを表すオブジェクトから右に移動するための方法はあります、ありますか?

役に立ちましたか?

解決

あなたはこのようResponse.ContentTypeのを使用することができます。

Response.ContentType = "text/plain";
Response.OutputStream.Write(buffer, 0, buffer.Length);
Response.AddHeader("Content-Disposition", "attachment;filename=yourfile.txt");
テキストファイルを書き込みたい場合は、

もちろん、これは動作します。場合は、あなたがたContentTypeを変更例えば.DOCを書きたいの「アプリケーション/ mswordは」等...

他のヒント

あなたがすることができます。

これを試してください:

Table oTable = new Table();
//Add data to table.

Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename="test.xls"");
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.Html32TextWriter oHtmlTextWriter = new System.Web.UI.Html32TextWriter(oStringWriter);
0Table.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();

これは、Test.xlsとファイルを開いたり、保存を促す与えます。 同様に、あなたは表の代わりに他のASP.NETオブジェクトを提供することができます。

はいます。

page.Response.WriteFile(yourData, 0, yourData.Length);

質問に対する正確な答えは、あなたのレポートを組織していないかに依存します(つまり、あなたがに「オブジェクト」を参照しているされているもの)。あなたは、単一の文字列を持っている場合、あなたはそれを書くためにResponse.Writeを使用することができます。あなたは、ディスクへの書き込みをして、WriteFile関数を使用してスキップすることができ、そのように - あなたがたTextWriterが必要な場合は、Response.Outputはあなたが望むものです。あなたのコンテンツがバイナリであることを起こった場合にも、あなたはそのためResponse.OutputStreamを使用することができます。

また、あなたは、ユーザーが保存するファイルダイアログを表示したい場合は、Response.AddHeader(「のContent-処分」、「添付ファイル」)を設定することもできます。しかし、コンテンツ配置は必ずしも光栄されていないので、まだレポートを得ることができ、ユーザーは、ブラウザで直接開きます。あなたの出力の前に実際のコンテンツをヘッダーを設定することを忘れないでください!

また、レポートの形式に応じて、あなたはtext / plainで、テキスト/ CSVまたはものは何でも持っているような適切な何かにResponse.ContentTypeのを設定することもできます。正しいMIMEタイプは、 IANAサイトのにリストされています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top