【问题标题】:ASP.NET web application create txt file on users computerASP.NET Web 应用程序在用户计算机上创建 txt 文件
【发布时间】:2013-11-14 23:35:50
【问题描述】:

我有一个 asp.net c# web 应用程序。在其中一个页面上,我有一个按钮,按下时我希望它创建一个包含特定文本的文本文件并将其保存到用户 PC。我不想将它保存在服务器或任何东西上。

我目前有这个将“测试”写入文件:

string fileLoc = "filePath";
            FileStream fs = null;
            fs = File.Create(fileLoc);

            StreamWriter sw = new StreamWriter(fileLoc);
            sw.WriteLine("test");

            fs.Close();
            sw.Close();

如何将其保存到用户计算机。

感谢您的帮助!

【问题讨论】:

标签: asp.net


【解决方案1】:

ASP.NET 在服务器上运行。如果您想使用客户端的计算机,您将使用 Java Script 进行操作。我建议您使用任何用 javascript 编写的开源项目,例如 https://github.com/eligrey/FileSaver.js

【讨论】:

    【解决方案2】:

    您必须通过操作方法返回它。

    public ActionResult DownloadFile(){
     return File(filePath, "text/plain", "MyFileName");
    }
    

    您无法将其显式保存到用户 PC,因为您根本无权访问它。将其作为ActionResult(更具体地说:FileResult)返回将作为下载返回。

    【讨论】:

    • 我认为 OP 没有使用 ASP.NET MVC。
    • 可能,是的。如果结果是这样,我将删除答案并投票关闭作为重复。
    【解决方案3】:

    您无法将文件直接保存在客户端中。您必须将其写入响应,然后将其作为下载发送回客户端。有很多方法,其中一种包括将文件流直接写入响应中,例如:

    Response.ContentType = "text/plain";
    Response.OutputStream.Write(buffer, 0, buffer.Length);
    Response.AddHeader("Content-Disposition", "attachment;filename=yourfile.txt");
    

    参考:C# Asp.net write file to client

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多