返回文件流,给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
},