[英]Open a hyperlink from Reporting Services in a new window and pass through a value
[英]Image from DB in Reporting Services
从本质上讲,我的基本问题是我无法在SSRS中显示图像。 我得到了一个带有“ x”的小盒子。 这些图像从我开发并控制的Web应用程序存储在SQL db中 ...由Web服务处理,我也可以控制。
我想知道我是否出错了多个地方:
在客户端上,我使用javascript FileReader API即时呈现上载图像的缩略图以显示给用户。 var reader = new FileReader();
调用reader.readAsDataURL(file);
我将数据放入变量imageURL = reader.result
并进行了一些字符串操作以从(base64编码的)文件数据字符串中删除data:image/jpeg;base64,
,然后最终使用SOAP信封将此变量传递给服务器。
因此, 在服务器上 ,图像数据由我的Web服务(只是.asmx /不是WCF)作为字符串数据类型接收,然后最终作为SQL VARCHAR(MAX)插入数据库。
在报表服务中,我放入一个图像控件,然后将图像源设置为“数据库”,将字段从我的数据集中设置为我的照片字段,并将MIME类型设置为jpeg ...我相信这都是适当的。
所以...我相信我在SSRS中没有做错任何事情,但是也许在客户端上我在如何发送数据方面做错了什么? 或者,也许我选择存储的图像数据不正确。 我确实可以访问服务器计算机,因此也许需要将图像保存在文件系统中,但是即使是我目前的方法,它似乎仍然可以正常工作。
如果需要提供更多信息,请告诉我。
要解决您的问题,您需要将数据库字段更改为:
您还需要更改Web服务以上传字节流而不是字符串。
即使您使用的是SQL 2008或2008R2,我也建议您使用varbinary数据类型来将来对数据库模型进行打样。
要为SSRS报告创建测试数据源,请使用以下SQL生成名为ImageTest的表。 您需要提供将上传到表格中的图片的文件路径。
CREATE TABLE ImageTest (
image_data VARBINARY(MAX));
INSERT INTO ImageTest (image_data)
SELECT image_data
FROM OPENROWSET(
BULK N'<location of an image file>',
SINGLE_BLOB) AS ImageSource(image_data);
要尝试在SSRS中创建表格,请使用
预览报告时,您应该使用存储在数据库中的图像来查看报告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.