【问题标题】:Writing a file to the virtual server, ASP.NET [duplicate]将文件写入虚拟服务器,ASP.NET [重复]
【发布时间】:2010-09-23 16:47:49
【问题描述】:

可能重复:
Write to CSV file and export it?

这可能是一个愚蠢的问题,我在 Google 上进行了搜索,但找不到明确的答案 - 如何将 CSV 文件写入网络服务器并将其导出到 C# ASP.net 中?我知道如何生成它,但我想将其保存到 www.mysite.com/my.csv 然后导出。

【问题讨论】:

  • 请提供更多细节。这个 CSV 文件是在哪里生成的,你希望它保存在哪里,你希望它导出到哪里?根据我从您的解释中了解到,您有一个托管在 www.mysite.com 上的 ASP.NET 应用程序,然后就变得不清楚了。
  • 这与该用户大约 5 小时前提出的问题完全相同,目前有 3 个答案:stackoverflow.com/questions/3777874/…
  • 该问题中的答案或链接都没有解释如何将文件保存到虚拟服务器,所以我想我会在一个新问题中更具体。
  • @Romulus,什么是虚拟服务器
  • CSV 文件是由我的应用程序中的一个页面生成的。我想将此文件保存在某处并将其导出。例如用户访问 www.mysite.com/generatecsv.aspx,并获取保存的 csv 文件作为输出。

标签: c# asp.net csv export


【解决方案1】:

您不需要将 CSV 文件保存到磁盘,特别是如果它是动态生成的。您可以直接将其写入响应流,以便用户下载:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Clear();
    Response.ContentType = "text/csv";
    Response.AppendHeader("Content-Disposition", "attachment; filename=foo.csv");
    Response.Write("val1,val2,val3");
}

您也可以编写一个 http 处理程序:

public class CsvHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=foo.csv");
        context.Response.ContentType = "text/csv";
        context.Response.Write("val1,val2,val3");
    }

    public bool IsReusable
    {
        get { return true; }
    }
}

你会这样称呼它:http://mysite.com/csvhandler.ashx

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 2021-09-27
    • 2012-08-21
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2020-07-25
    相关资源
    最近更新 更多