一、blob文件的存储
1.实体类:
private byte[] newPhoto;//数据库保存图片
注意返回值类型为字节数组,数据库类型为BLOB;
2.jsp页面
<form:input path="filePhoto" htmlEscape="false" type="file"/>
3.controller文件
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("filePhoto");// 与前端设置的fileDataName属性值一致
String filename = multipartFile.getOriginalFilename();// 文件名称
InputStream is = null;
try {
//读取文件流
is = multipartFile.getInputStream();
byte[] bytes = FileCopyUtils.copyToByteArray(is);
user.setNewPhoto(bytes);
} catch (Exception e) {
// TODO: handle exception
}
二、blob文件从数据库的读取
1.jsp页面
<img alt="照片" src="${ctx}/sys/user/upAndReadImg?id=${user.id}" width="120" height="120">
2.controller文件
public String upAndReadImg(@RequestParam(value="id",required=true)String id,HttpServletResponse response){
User user=UserUtils.get(id);
if(user != null){
byte[] bytes=user.getNewPhoto();
ServletOutputStream out=null;
try {
if (bytes != null && bytes.length > 0) {
out=response.getOutputStream();
out.write(bytes);
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}