<!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为5MB --> <property name="maxUploadSize"> <value>5242880</value> </property> </bean>添加jar包CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:创建虚拟目录,存储图片在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:<Context docBase="F:/develop/upload/temp" path="/pic" reloadable="false"/>访问http://localhost:8080/pic即可访问F:/develop/upload/temp下的图片。也可以通过eclipse配置:注意:在图片虚拟目录中,一定将图片目录分级创建(提高i/o性能),一般我们采用按日期进行分级创建。图片上传jsp:<form id="itemForm" action="${pageContext.request.contextPath }/user/editUserSubmit.action" method="post" enctype="multipart/form-data"> <table width="100%" border=1> <tr> <td>头像</td> <td><img alt="" src="/pics/${user.headphoto }"> <input type="file" name="pictureFile" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交" /> </td> </tr> </table> </form>Controller:@RequestMapping("/editUserSubmit") public String editUserSumit(Model model, Integer id, @Validated(value = (ValidationGroup1.class)) UserCustom userCustom, BindingResult bindingResult, MultipartFile pictureFile) throws Exception { // 原始文件名称 String pictureFile_name=pictureFile.getOriginalFilename(); // 新文件名称 String newPictureFile_name=UUID.randomUUID()+pictureFile_name.substring(pictureFile_name.lastIndexOf('.')); // 上传图片 File uploadPic=new File("F://develop//upload//temp//"+newPictureFile_name); // if(!uploadPic.exists()){ // uploadPic.mkdirs(); // } // 向磁盘写入文件 pictureFile.transferTo(uploadPic); // 如果上传成功,将新的文件名称写入 userCustom.setHeadphoto(newPictureFile_name); usersservice.updateUser(id, userCustom); // 重定向 return "redirect:queryUsers.action"; }
新闻热点
疑难解答