解释一下 getServletContext().getRealPath("/") + "images/" + fileName;的意思
时间: 2023-07-19 12:50:51 浏览: 37
getServletContext().getRealPath("/") 返回的是 web 应用程序的根目录在服务器文件系统上的绝对路径。
在这个绝对路径上,我们使用 "/images/" 来指定一个名为 images 的文件夹,用于存储我们上传的图片。
然后,我们使用上传的文件名(fileName)来构建完整的文件路径,最终得到的是一个保存上传文件的完整路径。
总之,这行代码的作用是获取 web 应用程序的根目录在服务器文件系统上的绝对路径,然后在该路径下创建一个名为 images 的文件夹,并将上传的文件保存到该文件夹中。
相关问题
String path = request.getServletContext().getRealPath("D:\\ShopProject\\src\\main\\webapp\\images")+fileName;
String path = request.getServletContext().getRealPath("D:\\ShopProject\\src\\main\\webapp\\images")+fileName; 这段代码是用于获取指定文件的绝对路径。
首先,request.getServletContext()是用于获取当前Web应用程序的ServletContext对象,它代表了整个Web应用程序的上下文环境。
接着,getRealPath()方法是ServletContext对象的一个方法,它可以将相对路径转换为绝对路径。在这段代码中,传入的参数是"D:\\ShopProject\\src\\main\\webapp\\images",表示要获取的文件的相对路径。getRealPath()方法会返回该相对路径对应的绝对路径。
最后,通过将fileName拼接到获取到的绝对路径后面,可以得到完整的文件路径。
解释这段代码 @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(); }
这是一个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作为参数传递给该页面。