springmvc 文件上传

    xiaoxiao2021-03-26  25

    上传图片 需求 在修改用户信息界面添加上传用户头像功能 springmvc中对多部件类型解析 在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。 在springmvc.xml中配置multipart类型解析器。 <!-- 文件上传 --> <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"; } 
    转载请注明原文地址: https://ju.6miu.com/read-662481.html

    最新回复(0)