springmvc学习笔记(17)-上传图片
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
springmvc學(xué)習(xí)筆記(17)-上傳圖片
標(biāo)簽: springmvc
[TOC]
本文展示如何在springmvc中上傳圖片
springmvc中對多部件類型解析
在修改商品頁面,添加上傳商品圖片功能。
在頁面form中提交enctype="multipart/form-data"的數(shù)據(jù)時,需要springmvc對multipart類型的數(shù)據(jù)進(jìn)行解析。
在springmvc.xml中配置multipart類型解析器。
<!-- 文件上傳 --> <bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 設(shè)置上傳文件的最大尺寸為5MB --><property name="maxUploadSize"><value>5242880</value></property> </bean>加入上傳圖片的jar
添加依賴
<!-- 文件上傳 --> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version> </dependency>依賴樹
[INFO] \- commons-fileupload:commons-fileupload:jar:1.3.1:compile [INFO] \- commons-io:commons-io:jar:2.2:compile可以看到,其實(shí)還間接依賴了commons-io:commons-io:jar
創(chuàng)建圖片虛擬目錄存儲圖片
參考我之前的博文
在intellij IDEA中為web應(yīng)用創(chuàng)建圖片虛擬目錄(詳細(xì)截圖)
也可以直接修改tomcat的配置,在conf/server.xml文件,添加虛擬目錄.
注意:在圖片虛擬目錄中,一定將圖片目錄分級創(chuàng)建(提高i/o性能),一般我們采用按日期(年、月、日)進(jìn)行分級創(chuàng)建。
上傳圖片代碼
- 頁面
- 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("."));//新圖片F(xiàn)ile newFile = new File(pic_path+newFileName);//將內(nèi)存中的數(shù)據(jù)寫入磁盤items_pic.transferTo(newFile);//將新圖片名稱寫到itemsCustom中itemsCustom.setPic(newFileName);}作者@brianway更多文章:個人網(wǎng)站 | CSDN | oschina
轉(zhuǎn)載于:https://my.oschina.net/brianway/blog/637593
總結(jié)
以上是生活随笔為你收集整理的springmvc学习笔记(17)-上传图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java反射_JDBC操作数据
- 下一篇: c++测试题2016-6-2