springmvc之上傳圖片
阿新 • • 發佈:2018-11-10
在頁面form中提交enctype="multipart/from-data"的資料時,需要springmvc對multipart型別的資料進行解析。
在springmvc.xml中配置解析這種型別資料的解析器。
配置解析器需要提前配置依賴
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency>
</bean> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8" /> <!-- 上傳圖片最大大小--> <property name="maxUploadSize" value="10485760000" /> <property name="maxInMemorySize" value="40960" /> </bean>
之後要建立虛擬目錄儲存圖片,這裡不再贅述,
第一種圖形化介面改
詳情見https://blog.csdn.net/hexinghua0126/article/details/79189481
第二種直接修改tomcat的配置:
在conf/server.xml檔案,新增虛擬目錄
<Context docBase="物理路徑(例如F:\develop\upload\temp)" path = "\pic" reloadable="false"
注意:在圖片虛擬目錄中,一定將圖片分級建立,提高i/o效能。
//上傳圖片 //controller中傳參MultipartFile item_pic if(item_pic!=null){ //儲存圖片的物理路徑 String pic_path = "F:\\develop\\upload\\temp\\"; //原始名稱 String originalFilename = item_pic.getOriginalFilename(); //新圖片名稱 String newFileName = UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf(".")); File newFile = new File(pic_path + newFileName); //將記憶體中的資料寫入磁碟 item_pic.transferTo(newFile); //將新圖片名稱寫到itemsCustom itemsCustom.setPic(newFileName); }