![](/img/trans.png)
[英]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.