открыв файл в браузере вместо его загрузки - PullRequest
3 голосов
/ 18 августа 2010

Я использую ssrs через сервер отчетов для генерации байтового массива resultStream с использованием ReportExecutionService.Render (), который в настоящее время я передаю пользователю с помощью следующего кода. Можно ли использовать этот же байтовый массив для автоматического открытия отчета в новом окне браузера вместо перехода в диалоговое окно сохранения / открытия?

   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 ]

3 голосов
/ 18 августа 2010

Вот эта строка:

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

Это вызывает его загрузку. Закомментируйте эту строку, и пока браузер может обрабатывать тип MIME, он будет отображаться в окне браузера.

0 голосов
/ 18 августа 2010

Просто измените заголовок, который вы добавляете к чему-то другому, кроме вложения.Сделайте это форматом ваших данных - и, надеюсь, браузер распознает его.

...