在浏览器中打开文件而不是下载它

时间:2010-08-18 15:49:16

标签: c# .net reporting-services download ssrs-2008

我使用ssrs通过报表服务器使用ReportExecutionService.Render()生成一个resultStream字节数组,我目前使用以下代码向用户提供该数组。 有没有办法可以使用同一个字节数组在新的浏览器窗口中自动打开报表,而不是转到保存/打开对话框?

   public void RenderReport (byte[] reportDigits, ReportItem reportItem)
   {
      HttpResponse response = HttpContext.Current.Response;
      response.Clear();
      response.ContentType = reportItem.ReportMimeType;
      response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", reportItem.ExportName));
      response.OutputStream.Write(reportDigits, 0, reportDigits.Length);
      response.End();
   }

在过去,我使用了一个单独的ReportViewer.aspx页面,我先打开然后显示报告,但如果可能的话,我想在代码后面全部完成。

感谢

2 个答案:

答案 0 :(得分:3)

就是这一行:

response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", reportItem.ExportName));

这导致它被下载。注释掉该行,只要浏览器可以处理mime类型,它就会在浏览器窗口中呈现。

答案 1 :(得分:0)

只需将要添加的标题更改为附件以外的其他内容即可。使其成为您数据的格式 - 希望浏览器能够识别它。