第一:
@RequestMapping("/testUp")
public String testUp(MultipartFile photo, HttpSession session) throws IOException {//获取上传的文件的文件名String fileName = photo.getOriginalFilename();//获取上传的文件的后缀名String suffixName = fileName.substring(fileName.lastIndexOf("."));//将UUID作为文件名String uuid = UUID.randomUUID().toString().replaceAll("-","");//将uuid和后缀名拼接后的结果作为最终的文件名fileName = uuid + suffixName;//通过ServletContext获取服务器中photo目录的路径ServletContext servletContext = session.getServletContext();String photoPath = servletContext.getRealPath("photo");File file = new File(photoPath);//判断photoPath所对应路径是否存在if(!file.exists()){//若不存在,则创建目录file.mkdir();}String finalPath = photoPath + File.separator + fileName;//上传文件photo.transferTo(new File(finalPath));return "success";
}
@RequestMapping("/testUp") 注解指定了该方法用于处理HTTP请求,并将请求路径映射为"/testUp"。MultipartFile photo 参数用于接收上传的文件,通过photo.getOriginalFilename()获取上传文件的文件名。通过截取文件名的最后一个"."后的字符串,可以获取上传文件的后缀名。使用UUID生成一个唯一的字符串,并将后缀名拼接在后面,作为最终的文件名。通过HttpSession的getServletContext()方法获取服务器中photo目录的路径。创建一个File对象,表示photo目录,如果目录不存在,则使用file.mkdir()方法创建目录。将最终的文件路径拼接为photoPath + File.separator + fileName。使用photo.transferTo(new File(finalPath))将上传的文件保存到最终路径中。方法返回字符串"success",可能用于跳转到成功页面或其他相关操作。这段代码实现了一个简单的文件上传功能,将上传的文件保存到服务器的photo目录中,并使用UUID生成一个唯一的文件名。通过MultipartFile对象的transferTo()方法,将上传的文件保存到最终路径中。第二:
<!--配置文件上传解析器,将上传的文件封装为MultipartFile-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
- 这段XML配置代码使用了Spring框架中的
CommonsMultipartResolver
类来实现文件上传解析器的配置。 - 通过将该解析器配置为一个Spring的Bean,可以在处理请求时自动将上传的文件封装为
MultipartFile
对象。 CommonsMultipartResolver
是Spring框架提供的一个常用的文件上传解析器,它基于Apache Commons FileUpload库实现了文件上传的功能。- 通过配置该解析器,可以方便地在Spring MVC中处理文件上传的请求。