/**
* 上传文件使用IO流保存到数据库
*
* @param files
* @param username
* @return
*/
private byte[] loadFiles(MultipartFile file) {
byte data[] = new byte[1024];
if (!file.isEmpty() && isImageFile(file.getOriginalFilename())) {
try {
InputStream is = file.getInputStream();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bs.write(ch);
}
data = bs.toByteArray();
} catch (Exception e) {
return null;
}
} else {
return null;
}
return data;
}
/**
* 判断文件是否为图片文件
*
* @param fileName
* @return
*/
private boolean isImageFile(String fileName) {
String[] img_type = new String[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
if (fileName == null) {
return false;
}
fileName = fileName.toLowerCase();
for (String type : img_type) {
if (fileName.endsWith(type)) {
return true;
}
}
return false;
}
保存到数据attachmentFile.setImgData(loadFiles(file));
读入响应流并在页面用img标签接收
@RequestMapping(value = “/showImg/{id}”, method = RequestMethod.GET)
public void showDealer(@PathVariable(“id”) long id, HttpServletResponse httpServletResponse) throws IOException {
Attachment attachment = attachmentService.findByAttachmentId(id);
byte[] imageData = attachmentFileService.readAttachmentFile(attachment.getAttachmentFile());
httpServletResponse.setContentType("image/png");
OutputStream output = httpServletResponse.getOutputStream();
InputStream in = new ByteArrayInputStream(imageData);
int len;
byte[] buf = new byte[1024];
while ((len = in.read(buf)) != -1) {
output.write(buf, 0, len);
}
output.flush();
output.close();
}
<img ng-src="showImg/{{dealer.businessLicense}}" /></div>