在 .net 网站中生成文本文件的最佳方法是什么?

2024-02-05

我的 vb.net Web 应用程序中有一个页面,需要将一堆数据放入文本文件中,然后将其提供给用户下载。在 .net Web 服务器上构建此类文本文件的最佳/最有效方法是什么?

编辑:为了回答下面的问题,这将是下载一次然后丢弃的文件。

更新:我将 John Rudy 和 DavidK 的建议结合在一起,效果非常好。谢谢大家!


答案将取决于,正如被遗忘的分号所提到的,您是否需要重复下载或一次性下载。

无论哪种方式,关键是设置输出的内容类型以确保显示下载窗口。直接文本输出的问题是浏览器将尝试在自己的窗口中显示数据。

设置内容类型的核心方法类似于以下内容,假设文本是输出字符串,文件名是您希望文件(本地)保存为的默认名称。

HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ContentType = "application/octet-stream";
response.Charset = "";
response.AddHeader("Content-Disposition", String.Format("attachment; filename=\"{0}\"", filename));
response.Flush();
response.Write(text);
response.End();

这将提示用户下载。

现在,如果您需要将文件逐字保存到 Web 服务器上,事情就会变得更加棘手——但也不是非常如此。您需要使用 System.IO 中的类将文本写入文本文件。确保网络服务、IUSR_MachineName 和 ASPNET Windows 用户可写入写入的路径。否则,同样的事情——使用内容类型和标头来确保下载。

我建议不要真正保存文件,除非您需要 - 即使这样,直接在服务器上这样做的技术可能不是正确的想法。 (例如,如果您需要访问控制来下载所述文件怎么办?现在您必须在应用程序根目录之外执行此操作,这可能会也可能不会,具体取决于您的托管环境。)

因此,如果不知道您是否处于一次性模式或文件必须真正保存模式,也不知道安全隐患(如果您确实需要服务器端保存,则可能需要自己解决),这就是关于我能给你最好的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 .net 网站中生成文本文件的最佳方法是什么? 的相关文章

随机推荐