從後臺獲取檔案。img的src內容(通用方法)
阿新 • • 發佈:2019-01-26
返回檔案流,給img的src 賦值 為請求地址
– 前端為dojo,後端為java -hibernate - spring
- dao
@Override public byte[] queryPhotoImg(String Id) { StringBuffer sql = new StringBuffer(); sql.append(" SELECT PHOTO"); sql.append(" FROM TAB_TEST "); sql.append(" WHERE ID= ? "); Session session = (Session) getCurrentSession(); SQLQuery query = session.createSQLQuery(sql.toString()); query.addScalar("PHOTO",Hibernate.BLOB); query.setParameter(0,sAreaId); Blob blob = (Blob) query.uniqueResult(); if(blob == null){ return null; } InputStream is = null; byte[] b = null; try { is = blob.getBinaryStream(); b = new byte [( int ) blob.length ()]; is.read ( b ); } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { is.close (); is = null; } catch ( IOException e ) { e.printStackTrace (); } } return b; }
- Service
public byte[] queryPhotoImg(String Id) {
if(StringUtils.isNotEmpty(Id)) {
return Dao.queryPhotoImg(sAreaId);
}
return null;
}
- Rset
@RequestMapping(value ="/queryImg") public void queryPhotoImg(HttpServletRequest req, HttpServletResponse res,String id) throws IOException { byte[] bytes = Service.queryPhotoImg(id); if(bytes == null){ res.getWriter().print("null"); }else { res.setContentType("image/jpg"); res.setContentLength(bytes.length); res.getOutputStream().write(bytes); } }
前端
initImg:function(){
this. Photo.onerror = dojo.hitch(this,function(dom){
dom.src = "../images/none.png";
}, this.showDoorPhoto); //返回錯誤時,預設圖片
this.showDoorPhoto.src = "[src]?id=?"+ Id+"&t=" + Math.random(); //每次都重新請求url
},