【问题标题】:jsreports not adding .csv extension to filejsreports 未向文件添加 .csv 扩展名
【发布时间】:2015-11-18 23:29:07
【问题描述】:

我正在使用 mysite.jsreportsonline.net 创建最终用户下载的 csv。在我登录下的 jsreports 站点上,它的功能应该是提示我下载扩展名为 .csv 的文件。由于某种原因,在我的 MVC 4 应用程序中,它会提示下载,但没有添加 .csv 扩展名。在我的控制器中,我使用我的登录凭据从 mysite.jsreportonline.net 中提取报告。你有什么线索吗?为什么会这样?

【问题讨论】:

    标签: asp.net-mvc-4 csv jsreport


    【解决方案1】:

    jsreport 响应标头包括类似

    的内容
    Content-Disposition: attachment;filename=report.csv  
    

    这会指示浏览器打开 report.csv 的下载对话框。

    如果我理解正确,您可以从控制器向 jsreport 发出发布请求,然后返回您返回的流。您需要确保在响应中也添加这样的标题。

    【讨论】:

    • 我使用的是ReportingService,它允许输入url字符串、用户名和密码,_reportingService.RenderAsync允许输入短ID和输入数据。尝试添加 Response.AddHeader 但这不起作用。还尝试了FileExtension = "csv";,但也没有用。
    • 您似乎有一个从 mvc 控制器返回文件的常见问题。您应该能够像返回任何其他流一样返回 jsreport 流。你尝试过这样的事情吗? stackoverflow.com/a/5830215/1660996
    • 我正在添加Response.AppendHeader("content-Disposition: attachment; filename=filename.csv", report.ToString());,返回的是“filename.csv-jsreport.Client.Report”作为要保存的文件名。
    • 还是不行。使用System.Web.HttpContext.Current.Application.Remove("- jsreport.Client.Report");System.Web.HttpContext.Current.Response.ClearContent();System.Web.HttpContext.Current.Response.ClearHeaders();Response.AppendHeader("Content-Disposition: " + "attachment; filename=report.csv", report.ToString());System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; 没有运气。仍想将其另存为“report.csv-jsreport.Client.Report” 有没有人让它在 MVC 4 应用程序中工作?
    【解决方案2】:

    所以我用错了Response.AppendHeader。以下是它的编码方式:

    Response.AppendHeader("Content-Disposition", "attachment; filename=filename.csv");
    Response.ContentType = "application/octet-stream";
    

    【讨论】:

      猜你喜欢
      • 2022-12-19
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 2021-02-16
      • 2012-12-24
      • 2015-07-02
      相关资源
      最近更新 更多