【发布时间】:2013-03-12 12:02:38
【问题描述】:
我将 FileHelpers 库用于 C# .net 项目。一切正常,除了我需要通过单击按钮来保存生成的 CSV。
因此,用户单击一个按钮,他们会收到保存文件的提示。我知道 Filehelpers 有一个 WriteStream 选项,但他们自己的文档只显示了 WriteFile 的一个示例。我不知道是否需要 WriteStream,但我认为是。
有人知道是否可以将 CSV 文件直接保存到客户端而不是服务器硬盘上?
谢谢。
更新更多细节:
我将尝试提供更多细节,以帮助阐明我想要实现的目标。我不想在服务器上保存任何文件。我正在使用 FileHelpers 生成记录,我想尝试使用他们的 WriteStream 方法将该记录作为 CSV 直接写入他们的浏览器;但奇怪的是,他们提供的示例实际上根本没有使用该方法。
这是他们方法的链接:
http://www.filehelpers.com/FileHelpers.FileHelperEngine.WriteStream_overload_2.html
这是有问题的方法。
public void WriteStream(
TextWriter writer,
IEnumerable records,
int maxRecords
);
我可以轻松地将文件保存到服务器,但我不想这样做,因为我不需要它,并且希望让客户端将它直接保存到他们自己的机器上。
可能我必须通过正常途径来实现这一点,但我看到了 WriteStream 方法,并认为 FileHelpers 可能促进了一种很好的干净方式来实现相同的结果。
希望这更清楚。
【问题讨论】:
-
您能否发布您当前保存文件的工作代码应该不是问题,但是如果不查看您拥有的当前代码,很难确定您正在尝试做什么。如果这是
ASP.net应用程序,那么您希望使用Response Object以及StreamWriter Class -
我真的没有任何代码了(在这个阶段已经编写和删除了一千次)。我要做的是单击按钮以通过浏览器将 CSV 文件返回给用户。我可以将它保存到服务器没有问题,但是在没有保存文件的情况下让 Response.TransmitFile() 的等价物工作让我望而却步。希望这更清楚。
-
您仍然可以执行此操作,您需要使用
Response执行此操作这里是您可以参考的链接,非常简单stackoverflow.com/questions/10974930/… 将Response.ContentType = "application/ms-excel";更改为Response.ContentType = "application/text";或Response.ContentType = "text/csv"; -
谢谢,我知道以您提到的方式写信给客户,但我认为 FileHelpers 库有一些我可以使用的等价物。也许它没有,我需要使用您链接到的流程,但我可以发誓他们确实提供了相同流程的某些版本。
标签: c# asp.net filehelpers