<!-- 文件上傳 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設(shè)置上傳文件的最大尺寸為5MB --> <property name="maxUploadSize"> <value>5242880</value> </property> </bean>添加jar包CommonsMultipartResolver解析器依賴commons-fileupload和commons-io,加入如下jar包:創(chuàng)建虛擬目錄,存儲圖片在tomcat上配置圖片虛擬目錄,在tomcat下conf/server.xml中添加:<Context docBase="F:/develop/upload/temp" path="/pic" reloadable="false"/>訪問http://localhost:8080/pic即可訪問F:/develop/upload/temp下的圖片。也可以通過eclipse配置:
注意:在圖片虛擬目錄中,一定將圖片目錄分級創(chuàng)建(提高i/o性能),一般我們采用按日期進(jìn)行分級創(chuàng)建。圖片上傳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"; }
新聞熱點
疑難解答