2012-04-04 38 views
0

我在绕包装如何做到这一点时遇到了麻烦。从一个字符串生成一个文件并发送给用户C#

我有一个DataTable通过存储过程返回。然后我会通过它并根据返回的信息创建一个分隔文件。

我已经在这里没有任何问题。

我的问题是带上我的StringBuilder对象,并创建一个CSV文件,然后发送给用户下载。我不能在服务器上创建一个临时文件,因为我试图在内存中完成这一切。

我想我需要做一些MemoryStream来创建“文件”,然后用响应服务,但我不知道要采取什么措施。

+0

的可能重复[如何将文本返回到客户端的HTML页面?](http://stackoverflow.com/questions/9983859/how-to-return-text-to -http-client-as-html-pages) – David 2012-04-04 01:16:30

+0

这个问题在这里得到了回答:)基本上你想设置一些头文件(特别是'content-disposition',告诉浏览器这个响应是一个文件),写该文件(或字符串,而不是)输出,并关闭输出。祝你好运! – David 2012-04-04 01:17:07

+0

结合这些http://stackoverflow.com/questions/4884357/converting-dataset-datatable-to-csv – 2012-04-04 01:20:59

回答

4
Response.Clear(); 
Response.ContentType = "application/CSV"; 
Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\""); 
Response.Write(csvBuilder.ToString()); 
Response.End(); 
0

我很肯定这个答案会让你走上正轨。

确保您将contentType设置为适合您文件的值。 最有可能response.ContentType = "text/plain";

Setting PDF file name dynamically

相关问题