1. 程式人生 > >springmvc之上傳圖片

springmvc之上傳圖片

在頁面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);
            }