Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在浏览器中打开文件而不是下载文件_C#_.net_Reporting Services_Download_Ssrs 2008 - Fatal编程技术网

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

C# 在浏览器中打开文件而不是下载文件,c#,.net,reporting-services,download,ssrs-2008,C#,.net,Reporting Services,Download,Ssrs 2008,Im通过报表服务器使用ssrs,使用ReportExecutionService.Render()生成resultStream字节数组,我当前正在使用以下代码为用户提供此数组是否有办法使用相同的字节数组在新的浏览器窗口中自动打开报告,而不是进入“保存/打开”对话框? public void RenderReport (byte[] reportDigits, ReportItem reportItem) { HttpResponse response = HttpCont

Im通过报表服务器使用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类型,它就会在浏览器窗口中呈现。

只需更改要添加到附件以外的内容的标题即可。让它成为你的数据格式——希望浏览器能识别它。

我不想接管任何试图启动报告JavaScript-
窗口的页面。打开('url\u to_your\u report.ext')-您无法使用服务器端代码打开新窗口,因此是否保存文件并向其注册重定向脚本?这一点都不好玩。哦,对了,这意味着没有真正的方法保持文件名并强制在浏览器中打开。我有一些图片在url中有id,但没有扩展名。如果用户希望另存为,则使用id作为文件名。。。如果我设置文件名,它会尝试直接保存。。这只是一个痛苦的。。。当您只想查看图像大小是否正确时。。。