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

我使用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页面,我先打开然后显示报告,但如果可能的话,我想在代码后面全部完成。

谢谢

就是这条线:

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

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

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