springmvc學習筆記(17)-上傳圖片

來源:互聯網
上載者:User

springmvc學習筆記(17)-上傳圖片
springmvc學習筆記(17)-上傳圖片

本文展示如何在springmvc中上傳圖片

springmvc中對多組件類型解析

在修改商品頁面,添加上傳商品圖片功能。

在頁面form中提交enctype="multipart/form-data"的資料時,需要springmvc對multipart類型的資料進行解析。

在springmvc.xml中配置multipart類型解析器。

                5242880    
加入上傳圖片的jar

添加依賴

    commons-fileupload    commons-fileupload    1.3.1

依賴樹

[INFO] \- commons-fileupload:commons-fileupload:jar:1.3.1:compile[INFO]    \- commons-io:commons-io:jar:2.2:compile

可以看到,其實還間接依賴了commons-io:commons-io:jar

建立圖片虛擬目錄儲存圖片
 

也可以直接修改tomcat的配置,在conf/server.xml檔案,添加虛擬目錄.

注意:在圖片虛擬目錄中,一定將圖片目錄分級建立(提高i/o效能),一般我們採用按日期(年、月、日)進行分級建立。

上傳圖片字碼頁面
<code class="language-jsp hljs xml">    商品圖片            <c:if test="${items.pic !=null}">            <img data-cke-saved-src="http://www.2cto.com/uploadfile/Collfiles/20160315/20160315091339193." src="http://www.2cto.com/uploadfile/Collfiles/20160315/20160315091339193." width="100" height="100/">                    </c:if>        <input type="file" data-cke-saved-name="items_pic" name="items_pic" data-cke-editable="1" contenteditable="false">    </code>
controller方法

修改:商品修改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);}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.