Hibernate在SqlServer中下传图像
Hibernate在SqlServer中上传图像
1、sqlServer中photo表字段(int id,image image,varchar contentType)
2、html页面如下:
<form action="uploadPhotoAction.action" method="post" enctype="multipart/form-data" > <input type="hidden" name="userId" value="1"/> 上传文件:<input type="file" name="upload" /><br> <input type="submit" value="提交"> </form>
3、uploadPhotoAction如下:
public class UploadPhotoAction { @Autowired(required = true) @Qualifier("productManager") private ProductManager productManager; private File upload; private String uploadContentType; private String uploadFileName; private Integer userId; public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } @Action(value="uploadPhotoAction",results={ @Result(name="success", location="/success.jsp", type="redirect"), @Result(name="error", location="/error.jsp", type="redirect") }) public String execute(){ if( this.getUserId() != 1){ return ActionSupport.LOGIN; } productManager.uploadPhoto(upload, uploadContentType); return ActionSupport.SUCCESS; } }
3、service部分
Integer photoId; try { FileInputStream in = new FileInputStream(photo); byte[] b = new byte[in.available()]; in.read(b); in.close(); Photo image = new Photo(); image.setContentType(uploadContentType); image.setImage(Hibernate.createBlob(b)); Session session = sessionFactory.getCurrentSession(); session.save(image); } catch (FileNotFoundException e) { e.printStackTrace(); return "error"; } catch (IOException e) { e.printStackTrace(); return "error"; } catch (RuntimeException re) { re.printStackTrace(); throw re; } return "success"; }