從db2資料庫讀取blob型別圖片資料並在前端頁面顯示
阿新 • • 發佈:2018-11-05
最近要寫一個需求,從db2中讀取圖片資料,blob型別,然後在前端頁面顯示,採用的是前後端分離的開發模式,使用下面這種方式,可以忽略前端,前端不需要動程式碼,就可直接顯示。。
直接上程式碼:
sql:只給大家擷取關鍵部分,select xmlgroup(pe.PictureData) as PictureData from ET_PICTURE pe;
java:
public List<IdeaBlockSelectionVo> selectBlockDatas(Map<String, Object> map) { List<IdeaBlockSelectionVo> vos = ideaBlockSelectionDao.selectBlockDatas(map); for (IdeaBlockSelectionVo v:vos) { String str = getTotalMidValue(v.getPictureData(),"<PICTUREDATA>","</PICTUREDATA>"); v.setPictureData("data:image/jpeg;base64,"+str); } return vos; }
public String getTotalMidValue(String source, String priStr, String suxStr) { if (source == null) return null; int iFirst = source.indexOf(priStr); int iLast = source.lastIndexOf(suxStr); if (iFirst < 0 || iLast < 0) return null; int beginIndex = iFirst + priStr.length(); return source.substring(beginIndex, iLast); }
關鍵程式碼完成,最主要的思路就是 使用 xmlgroup 將二進位制資料直接轉換成 xml格式檔案,然後可以直接擷取標籤中的內容,不需要解析,太蠻煩,然後返回前端時直接 拼接 data:image/jpeg;base64 就可以。。
前端就可以直接顯示圖片了。。