/**
* 上传图片并生成缩略图
*/
private void uploadManImageFile(HttpServletRequest request, DataRecord domainMap) {
if (!(request instanceof MultipartHttpServletRequest)) {
return;
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("domain.MAIN_IMAGE");
if (null != multipartFile && !multipartFile.isEmpty()) {
String id = domainMap.getString("ID");
String oriFilePath = getFilePath() + "/" + id + ".png";
String zoomFilePath = getFilePath() + "/_" + id + ".png";
File oriFile = new File(oriFilePath);
File zoomFile = new File(zoomFilePath);
FileOutputStream zoomFOS = null;
FileOutputStream oriFOS = null;
try {
oriFile.createNewFile();
zoomFile.createNewFile();
zoomFOS = new FileOutputStream(zoomFile);
oriFOS = new FileOutputStream(oriFile);
zoom(multipartFile.getInputStream(),oriFOS,zoomFOS, "png", 100, 100);
//domainMap.put("MAIN_IMAGE",getFilePath() + "/_" + id + ".png");
} catch (IOException e) {
e.printStackTrace();
} finally {
try{
zoomFOS.close();
}catch(Exception e){
}
try{
oriFOS.close();
}catch(Exception e){
}
}
}
}
/**
* 生成原图和缩略图
*/
private boolean zoom(InputStream sourceFileIs, OutputStream oriFOS, OutputStream zoomFOS, String suffix,
int width, int height) throws IOException {
BufferedImage readImage = ImageIO.read(sourceFileIs);
Image image = readImage.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage zoomImage = new BufferedImage(width, height, readImage.getType());
Graphics gc = zoomImage.getGraphics();
gc.drawImage(image, 0, 0, null);
ImageIO.write(zoomImage, suffix, zoomFOS);
ImageIO.write(readImage, suffix, oriFOS);
return true;
}