解释这段代码 @RequestMapping("productImage_add") public String add(ProductImage productImage, HttpSession session, UploadedImageFile uploadedImageFile){ if (null == productImage){ return "fail"; } productImageService.add(productImage); // 为正常大小图片设置存放位置 String imageFolder = session.getServletContext().getRealPath("images/productSingle"); // 小号图片存放位置 String imageFolder_small = session.getServletContext().getRealPath("images/productSingle_small"); // 中号图片存放位置 String imageFolder_middle = session.getServletContext().getRealPath("images/productSingle_middle"); System.out.println(imageFolder_middle ); String fileName = productImage.getId()+".jpg"; File f = new File(imageFolder, fileName); f.getParentFile().mkdirs(); try { uploadedImageFile.getMultipartFile().transferTo(f); BufferedImage img = ImageUtil.change2jpg(f); ImageIO.write(img, "jpg", f); File f_small = new File(imageFolder_small, fileName); File f_middle = new File(imageFolder_middle, fileName); ImageUtil.resizeImage(f, 56, 56, f_small); ImageUtil.resizeImage(f, 217, 190, f_middle); } catch (Exception e) { e.printStackTrace(); } return "redirect:/productImage/productImage_list?pid="+productImage.getPid(); }
时间: 2024-02-14 16:18:54 浏览: 78
简化版@requestmapping注解注册源码
5星 · 资源好评率100%
这是一个Spring MVC中的控制器方法,使用@RequestMapping注解将请求映射到/productImage_add路径上。该方法接受三个参数:ProductImage对象、HttpSession对象和UploadedImageFile对象。该方法的主要功能是将上传的产品图片存储到服务器上,并将图片的路径保存到数据库中。
在方法中,首先判断传入的ProductImage对象是否为空,如果为空则返回"fail"表示添加失败。如果ProductImage对象不为空,则调用ProductImageService中的add方法将其保存到数据库中。
接下来,通过session获取ServletContext对象,再通过该对象获取服务器上存储图片的文件夹的真实路径。根据不同的图片尺寸,分别创建存储该尺寸图片的文件夹,并将路径保存到对应的变量中。然后根据ProductImage对象的id和.jpg后缀构建出文件名,创建File对象。
接着,调用UploadedImageFile对象的getMultipartFile()方法获取上传的文件,并将其保存到File对象中。调用ImageUtil类中的change2jpg方法将图片转换为jpg格式,然后将其写入File对象中。根据不同的图片尺寸,分别调用ImageUtil类中的resizeImage方法对图片进行压缩,并保存到对应的文件夹中。
最后,返回重定向到产品图片列表的页面,并将ProductImage对象的pid作为参数传递给该页面。
阅读全文