二进制内容对应的实体属性为byte[],上传图片时以二进制形式保存到数据库,导出为本地图片文件后无法显示。对比过上传图片和导出后的图片大小都一样。
导出图片文件的代码如下:try {

File outFile = new File("e:\\2.gif");  //上传的图片也是gif
FileOutputStream fos = new FileOutputStream(outFile);
fos.write(avatar.getBytes());  
fos.close();

} catch (Exception e) {
e.printStackTrace();
}

解决方案 »

  1.   

    实体类:   private byte[] bytes;   @Lob
       public byte[] getBytes() {
    return bytes;
       }   public void setBytes(byte[] bytes) {
    this.bytes = bytes;
       }
    上传图片:(上传部分是没问题的,因为上传后是可以在页面上显示出来的,只是从数据库中导出来才显示不了)public String saveBinary() throws Exception {

    FileInputStream fis = new FileInputStream(file);
    byte[] content = new byte[fis.available()];

    entity.setBytes(content);                //....

                    avatarManager.saveAvatar(entity, user); return "showUserInfo";
    }