jumpdart
jumpdart

Reputation: 1722

opening a file in the browser instead of downloading it

Im using ssrs through a reports server to generate a resultStream byte array using ReportExecutionService.Render() which I am currently serving to the user with the following code. Is there a way I can use this same byte array to automatically open the report in a new browser window instead of going to the save/open dialog?

   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();
   }

In the past I have used a separate ReportViewer.aspx page that I would open first then display the report but would like to do it all in code behind if that is possible.

Thanks

Upvotes: 3

Views: 2828

Answers (2)

Russ
Russ

Reputation: 4173

Simply change the Header that you are adding to something other than an attachement. Make it the format of your data--and hopefully the browser will recognize it.

Upvotes: 0

Jamiec
Jamiec

Reputation: 136154

It's this line:

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

Thats causing it to be downloaded. Comment out that line, and as long as the browser can handle the mime type, it will render in the browser window.

Upvotes: 3

Related Questions