springmvc 中將MultipartFile轉為file,springboot 注入CommonsMultipartResolver


第一種方法:

     MultipartFile file = xxx; 
        CommonsMultipartFile cf= (CommonsMultipartFile)file; 
        DiskFileItem fi = (DiskFileItem)cf.getFileItem(); 

        File f = fi.getStoreLocation();

  會在項目的根目錄的臨時文件夾下生成一個文件;

第二種方法:

    transferTo(File dest);

  會在項目中生成一個新文件;

第三種方法:   

  File f = (File) xxx 強轉即可。前提是要配置multipartResolver,要不然會報類型轉換失敗的異常。

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="104857600"/>
        <property name="maxInMemorySize" value="4096"/>
    </bean>
  沒試過;
第四種方法:
  Workbook wb = Workbook.getWorkbook(xxx .getInputStream());
  轉換為輸入流,直接讀取;
第五種方法:
  byte[] buffer = myfile.getBytes();
  先轉換為字節數組,沒試過;

 

 //顯示聲明CommonsMultipartResolver為mutipartResolver
    @Bean(name = "multipartResolver")
       public MultipartResolver multipartResolver(){
        CommonsMultipartResolver resolver = new CommonsMultipartResolver();
        resolver.setDefaultEncoding("UTF-8");
        resolver.setResolveLazily(true);//resolveLazily屬性啟用是為了推遲文件解析,以在在UploadAction中捕獲文件大小異常
        resolver.setMaxInMemorySize(40960);
        resolver.setMaxUploadSize(50*1024*1024);//上傳文件大小 50M 50*1024*1024
        return resolver;
    }   

 


免責聲明!

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



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