我在绕包装如何做到这一点时遇到了麻烦。从一个字符串生成一个文件并发送给用户C#
我有一个DataTable通过存储过程返回。然后我会通过它并根据返回的信息创建一个分隔文件。
我已经在这里没有任何问题。
我的问题是带上我的StringBuilder对象,并创建一个CSV文件,然后发送给用户下载。我不能在服务器上创建一个临时文件,因为我试图在内存中完成这一切。
我想我需要做一些MemoryStream来创建“文件”,然后用响应服务,但我不知道要采取什么措施。
我在绕包装如何做到这一点时遇到了麻烦。从一个字符串生成一个文件并发送给用户C#
我有一个DataTable通过存储过程返回。然后我会通过它并根据返回的信息创建一个分隔文件。
我已经在这里没有任何问题。
我的问题是带上我的StringBuilder对象,并创建一个CSV文件,然后发送给用户下载。我不能在服务器上创建一个临时文件,因为我试图在内存中完成这一切。
我想我需要做一些MemoryStream来创建“文件”,然后用响应服务,但我不知道要采取什么措施。
Response.Clear();
Response.ContentType = "application/CSV";
Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\"");
Response.Write(csvBuilder.ToString());
Response.End();
我很肯定这个答案会让你走上正轨。
确保您将contentType设置为适合您文件的值。 最有可能response.ContentType = "text/plain";
的可能重复[如何将文本返回到客户端的HTML页面?](http://stackoverflow.com/questions/9983859/how-to-return-text-to -http-client-as-html-pages) – David 2012-04-04 01:16:30
这个问题在这里得到了回答:)基本上你想设置一些头文件(特别是'content-disposition',告诉浏览器这个响应是一个文件),写该文件(或字符串,而不是)输出,并关闭输出。祝你好运! – David 2012-04-04 01:17:07
结合这些http://stackoverflow.com/questions/4884357/converting-dataset-datatable-to-csv – 2012-04-04 01:20:59