標籤: springmvcjava
[TOC]git
本文展現如何在springmvc中上傳圖片github
在修改商品頁面,添加上傳商品圖片功能。web
在頁面form中提交enctype="multipart/form-data"
的數據時,須要springmvc對multipart類型的數據進行解析。spring
在springmvc.xml中配置multipart類型解析器。tomcat
<!-- 文件上傳 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設置上傳文件的最大尺寸爲5MB --> <property name="maxUploadSize"> <value>5242880</value> </property> </bean>
添加依賴mvc
<!-- 文件上傳 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
依賴樹app
[INFO] \- commons-fileupload:commons-fileupload:jar:1.3.1:compile [INFO] \- commons-io:commons-io:jar:2.2:compile
能夠看到,其實還間接依賴了commons-io:commons-io:jar
dom
參考我以前的博文jsp
也能夠直接修改tomcat的配置,在conf/server.xml文件,添加虛擬目錄.
注意:在圖片虛擬目錄中,必定將圖片目錄分級建立(提升i/o性能),通常咱們採用按日期(年、月、日)進行分級建立。
<tr> <td>商品圖片</td> <td> <c:if test="${items.pic !=null}"> <img src="/pic/${items.pic}" width=100 height=100/> <br/> </c:if> <input type="file" name="items_pic"/> </td> </tr>
修改:商品修改controller方法:
@RequestMapping("/editItemsSubmit") public String editItemsSubmit( Model model, HttpServletRequest request, Integer id, @ModelAttribute("items") @Validated(value = ValidGroup1.class)ItemsCustom itemsCustom, BindingResult bindingResult, MultipartFile items_pic )throws Exception {
//原始名稱 String originalFilename = items_pic.getOriginalFilename(); //上傳圖片 if(items_pic!=null && originalFilename!=null && originalFilename.length()>0){ //存儲圖片的物理路徑 String pic_path = "D:\\tmp\\"; //新的圖片名稱 String newFileName = UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf(".")); //新圖片 File newFile = new File(pic_path+newFileName); //將內存中的數據寫入磁盤 items_pic.transferTo(newFile); //將新圖片名稱寫到itemsCustom中 itemsCustom.setPic(newFileName); }