ASP.NETアプリケーションからの* .csvのような、エクスポート/ダウンロードのためのテキストファイルを作成したいと思います。私はResponse.TransmitFileについて知っていますが、実際にサーバー上にファイルを作成して保存することなく、この作業を行いたいと思います。それは可能ですか? 誰かがそういったことをしていますか?ASP.NETでは、ブラウザに文字列コンテンツをファイルにダウンロードさせるにはどうすればよいですか? (C#)
答えて
まだ保存していないファイルは、文字列変数またはMemoryStreamです。しかし、大量のデータの場合は、おそらくメモリ内にすべて保持したくないでしょう。一度それを持っていたら、この "ファイル"で何をしたいですか?
私はそれをダウンロードしたいと考えています –
「エクスポートするファイルを作成する」と言うと、ブラウザにダウンロード可能にしたいと思っています。その場合、ここに例があります。
public void btnGo_Click (Object sender, EventArgs e)
{
Response.Clear();
string fileName= String.Format("data-{0}.csv", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "filename=" + fileName);
// write string data to Response.OutputStream here
Response.Write("aaa,bbb,ccc\n");
Response.End();
}
は引用:RFC 4180
あなたはResponse.OutputStreamに直接使う書き込み、適切なコンテンツタイプ、およびコンテンツディスポジションヘッダーを設定することができます。
ああ、それは悪くないです。あなたのASPXページのPage_Loadのは、これを行うには:あなたの「ファイル」のXMLの場合
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(/* your text goes here */);
上記は一例ですが、それは何もすることができ、からとファイルをPDFに優れています。 GoogleまたはLive経由で検索できるContentTypeを更新するだけです。
あなたはすごく素敵です... =) – JasonRShaver
は、このサンプルをお試しください:
protected void Button1_Click(object sender, EventArgs e)
{
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=download.csv");
Response.Write("your,csv,file,contents");
Response.End();
}
あなたはカスタムHTTPハンドラ(IHttpHandler
を実装するクラス)を記述を見て、単にweb.configファイルに登録したいと思います。設定方法の良い例は、this article on MSDNを参照してください。
ここでは、一部のCSVデータのマークアップを実装するための実装方法の基本的な例を示します。
using System.Web;
public class MyCsvDocumentHandler : IHttpHandler
{
public static string Data
{
get;
set;
}
public MyCsvDocumentHandler()
{
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/csv"; // Set the MIME type.
context.Response.Write(Data); // Write the CSV data to the respone stream.
}
public bool IsReusable
{
// To enable pooling, return true here.
// This keeps the handler in memory.
get { return false; }
}
}
おそらく少し簡単です。この選択肢は、ASHX handlerページを使用することです。コードはほぼ同じです。
あなたのウェブを煩わせることなくIHTTPHandlerをリンクすることも可能です(文書化されていない場合)。config - ASHXの 'page'タイプは配線を提供します。 –
(これまではグラフィカルなボタンを動的に生成するためにこのテクニックを使用しましたが、これはかなり便利だと思います)。 –
@鉄人:まあ、絶対に。場合によっては、HTTPハンドラ(IHttpHandler)がより望ましいのですが、これは少し柔軟性がありますが、この場合ASHXも同様です。 – Noldorin
- 1. ブラウザにファイルをダウンロードさせるにはどうすればいいですか?
- 2. C#で文字列をPascalCase文字列に変換するにはどうすればよいですか?
- 3. C++/Arduino:文字列/文字配列をバイトに変換するにはどうすればよいですか?
- 4. C#でzipファイルをダウンロードするにはどうすればよいですか?
- 5. ブラウザにswfファイルの新しいバージョンを再ダウンロードさせるにはどうすればいいですか?
- 6. Cの文字配列から文字列を取得するにはどうすればよいですか?
- 7. ASP.NET MVCでシリアル化された文字列を処理するにはどうすればよいですか?
- 8. ブラウザから動的に生成されたファイルをダウンロードするにはどうすればいいですか?
- 9. クエリ文字列に基づいてコンテンツを変更するにはどうすればよいですか?
- 10. 文字列/数字を文字列に追加するにはどうすればよいですか?
- 11. 文字列にバックスラッシュ(\)を書くにはどうすればよいですか?
- 12. ユーザーがブラウザでファイルをダウンロードするタイミングを検出するにはどうすればよいですか?
- 13. C#で文字列を文例に変換するにはどうすればよいですか?
- 14. Cで文字列を整列した形式にフォーマットするにはどうすればよいですか?
- 15. C#で文字列をバイト配列に変換するにはどうすればよいですか?
- 16. Cで多次元配列に文字列を格納するにはどうすればよいですか?
- 17. 文字列の長さを150文字に制限するにはどうすればよいですか?
- 18. CまたはC++で文字列インターンを行うにはどうすればよいですか?
- 19. 文字エスケープシーケンスを含む文字列をcharに変換するにはどうすればよいですか?
- 20. IPアドレスを8文字の長い文字列にマップするにはどうすればよいですか?
- 21. 文字列をiOSの部分文字列に分割するにはどうすればよいですか?
- 22. PHP文字列値をアンドロイド文字列値に変換するにはどうすればよいですか?
- 23. PHPで文字列を日付に変換するにはどうすればよいですか? C#ので
- 24. JavaScriptの文字列の数字に下線を引かせるにはどうすればよいですか?
- 25. 1つの文字を文字列に変換するにはどうすればよいですか?
- 26. asp.net mvcでクエリ文字列パラメータにアクセスするにはどうすればよいですか?
- 27. UTF-8文字列を大文字に変換するにはどうすればよいですか?
- 28. 文字列の文字をリストに変換するにはどうすればよいですか?
- 29. DateTimePickerに空の文字列を表示させるにはどうすればよいですか?
- 30. 文字列の末尾にアンダースコアを一致させるにはどうすればよいですか?
あなたはもう少し具体的になりますか?文字列を取り出してクライアント上のファイルに保存し、サーバー上にファイルを作成しないことを意味しますか? –