SpringMVC——文件的上傳


一、加入依賴

commons-io-2.0.jar
commons-fileupload-1.2.1.jar

二、接口MultipartResolver

  • Spring MVC 為文件上傳提供了直接的支持,這種支持是通過即插即用的 MultipartResolver 實現的。Spring 用Jakarta Commons FileUpload 技術實現了一個MultipartResolver 實現類:CommonsMultipartResovler
  • Spring MVC 上下文中默認沒有裝配 MultipartResovler,因此默認情況下不能處理文件的上傳工作,如果想使用 Spring的文件上傳功能,需現在上下文中配置MultipartResolver

三、配置 MultipartResolver

defaultEncoding: 必須和用戶 JSP 的 pageEncoding 屬性一致,以便正確解析表單的內容

<!--配置MultipartResolver 文件上傳-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="maxUploadSize" value="5242880"></property>
    </bean>

注意:id的值必須是mutipartResolver。

四、文件上傳表單

<form action="${pageContext.request.contextPath}/test/testFileUpload" enctype="multipart/form-data" method="post">
    <input type="file" name="file">
    <input type="submit" value="上傳">
  </form>

五、Cotroller請求映射

   /**
     * 測試文件下載
     * @param multipartFile
     * @return
     */
    @RequestMapping("/testFileUpload")
    public String testFileUpload(@RequestParam("file")MultipartFile multipartFile, Map<String,Object> map) throws IOException {
        //文件的原始名
        String originalFileName = multipartFile.getOriginalFilename();
        //文件的大小
        Long  size = multipartFile.getSize();
        //form表單的name值
        String name = multipartFile.getName();
        if(multipartFile!=null){
            //將文件復制到目標目錄
            multipartFile.transferTo(new File("D://upload//"+originalFileName));
        }
        map.put("originalFileName",originalFileName);
        map.put("size",size);
        map.put("name",name);
        return SUCCESS;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM