/** * 上传图片并生成缩略图 */ 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; }
时间: 2025-01-03 16:07:03