【问题标题】:How can I render an SSRS report as image via URL without it downloading如何在不下载的情况下通过 URL 将 SSRS 报告呈现为图像
【发布时间】:2012-11-09 18:05:55
【问题描述】:

借助 SSRS,我们能够直接通过 URL 执行报告,甚至以特定格式导出报告。我已经设置了一个报告,我正在尝试将其导出为图像,效果很好。

例如:

http://myserver/ReportServer?http://myserver/DynamicImageTest.rdl&Keyword=test&rs:Command=Render&rs:Format=IMAGE&rc:OutputFormat=PNG

但是,因为 SSRS 设置了标题 Content-Disposition: attachment,所以我的浏览器总是下载图像,而不是内联显示。

我正在尝试将生成的图像嵌入到其他位置,因此我需要能够移除或抑制这种行为。

有什么方法可以做到这一点,要么使用 SSRS 的内置 URL 参数或一些解决方法,还是我需要通过 Web 服务运行报告才能做到这一点?

【问题讨论】:

    标签: reporting-services sql-server-2012 ssrs-2012


    【解决方案1】:

    这个解决方案对我有用,但在图形/趋势方面仍然存在渲染问题:

    您需要使用 javascript 将您的请求嵌入到这样的 html 页面中:

    function updateImage()
     {
        if(newImage.complete) {    
        newImage = new Image();
        newImage.src = "http://server/Reportserver/?%2path%2ftestIMAGE&rs:Command=Render&Refdata=529&rc:Toolbar=false&time=" + new Date() +"&rs:Format=IMAGE&rc:OutputFormat=PNG";
        document.getElementById('updatebkg').style.backgroundImage = newImage.src ;
        }
    }
    

    然后您将 html 页面像任何 rdl 文件一样上传到您的 SSRS 门户。 最后,您要求通过报告服务器访问(不是报告)呈现您的 html 页面:

    http://server/Reportserver/?%2fpath%2ftesthtml&rs:Command=GetResourceContents
    

    【讨论】:

      【解决方案2】:

      我认为没有办法直接在 SSRS 中更改这些标头。您需要编写自己的服务来获取内容并将其与正确的标头一起发送。幸运的是,编写该服务将是pretty straightforward

      我很高兴知道我错了。如果有办法改变它,它在 SSRS 配置中隐藏得很深。

      【讨论】:

      • 啊,完全错过了这个问题。我会在接受之前将其保留几天,看看是否有任何关于编辑配置的建议。
      • 谢谢,我将沿着这条路线作为中间人去除标题。
      猜你喜欢
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多