开发者

allow user to download dynamic csv file asp.net

开发者 https://www.devze.com 2023-01-07 00:10 出处:网络
I want to allow my user to click on a button that says \"download\" and then will build a dynamic csv file on the fly and will prompt the user to download.I know how to build the file using a HTTPHand

I want to allow my user to click on a button that says "download" and then will build a dynamic csv file on the fly and will prompt the user to download. I know how to build the file using a HTTPHandler, but not quite sure the mechanism for delivering the content via开发者_高级运维 download.


I usually create a Generic Handler (.ashx) and do something like this:

public void ProcessRequest(HttpContext context)
{
   StringBuilder myCsv = new StringBuilder();
   foreach(myRow r in myRows) {
     myCsv.AppendFormat("\"{0}\",{1}", r.MyCol1, r.MyCol2);
   }

   context.Response.ContentType = "application/csv";
   context.Response.AddHeader("content-disposition", "attachment; filename=myfile.csv");
   context.Response.Write(myCsv.ToString());
}

Now if the CSV you're building is REALLY big, you might want to write out each row as you create it, rather than stuffing it into a StringBuilder.


Just emit a Content-Disposition HTTP header in your HTTP Handler code. Most browsers will interpret that as a download request. Replace yourfile.csv by the filename you want the user to see.

context.Response.ContentType = "text/csv";
context.Response.AddHeader("Content-Disposition", "attachment; filename=yourfile.csv");
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号