程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> springmvc學習筆記(17)-上傳圖片

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

編輯:JAVA綜合教程

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);

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved