gpt4 book ai didi

c# - asp.net filehelpers 直接写文件到客户端

转载 作者:行者123 更新时间:2023-11-30 17:06:14 26 4
gpt4 key购买 nike

我正在为 C# .net 项目使用 FileHelpers 库。一切正常,除了我需要通过单击按钮来保存生成的 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 可能提供了一种实现相同结果的简洁方法。

希望这更清楚。

最佳答案

您应该能够执行以下操作:

Response.ContentType = @"application/x-msdownload";
Response.AppendHeader("content-disposition", "attachment; filename=" + FILE_NAME);

Response.Write(csv.ToString());
Response.Flush();
Response.End();

在 StackOverflow 上有很多更详尽的建议,例如 this one .这取决于您要实现的目标。

编辑

我认为您缺少的步骤是:

MemoryStream stream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(stream);
engine.WriteStream(streamWriter, records);
stream.Position = 0;

然后你就可以使用了

StreamReader reader = new StreamReader(stream);
Response.Write(reader.ReadToEnd);

在我上面的第一个示例中,而不是 Response.Write(csv.ToString())

关于c# - asp.net filehelpers 直接写文件到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com