当前位置:网站首页>Conversion between commonsmultipartfile and file

Conversion between commonsmultipartfile and file

2022-07-07 23:16:00 codepig16

One 、 CommonsMultipartFile To File( Curve of national salvation )

Here is the way to save the country with curves : First use CommonsMultipartFile Of getInputStream() Method to get a InputStream Object of type , then InputStream Type into File

 // take InputStream Type into File type 
     private static void inputStreamToFile(InputStream ins, File file) {
    
      // Convert the output stream into a file 
      FileOutputStream os = null;
      try {
    
       os = new FileOutputStream(file);
       int bytesRead = 0;
       byte[] buffer = new byte[1024];
       while((bytesRead = ins.read(buffer)) != -1) {
    
        os.write(buffer, 0, bytesRead);
       }
      }catch(Exception e) {
    
       throw new RuntimeException(" call inputStreamToFile Cause abnormal :"+e.getMessage());
      }finally {
    
       try {
    
        if(os != null) {
    
         os.close();
        }
        if(ins != null) {
    
         ins.close();
        }
       }catch(IOException e) {
    
        throw new RuntimeException("inputStreamToFile close io An exception occurred while :"+e.getMessage());
       }
      }
     }
  // Use inputStreamToFile Method 
   // When creating a file , Add any empty path , Create the file , You can delete it later 
   File xxFile = new File(" A non repeating path ");
   try {
    
    xxFile.createNewFile();
   } catch (IOException e) {
    
    // Handling exception information 
   }
   try {
    
    inputStreamToFile(xxCommonsMultipartFile.getInputStream(), xxFile);
   } catch (IOException e) {
    
    // Handling exception information 
   }
   //xxFile Is the transformed File file 

Two 、File To CommonsMultipartFile

  // hold File Turn into CommonsMultipartFile
     public FileItem createFileItem(File file, String fieldName) {
    
      //DiskFileItemFactory(): Construct a configured instance of this class 
      // The first parameter threshold( threshold ): In bytes . Below this threshold item Will be stored in memory , Above this threshold item Will be stored as a file 
      // The second parameter data repository: The directory where the files will be created . Used to configure when creating file items , The temporary folder used when the file item is greater than the threshold , The system default temporary file path is adopted by default 
      FileItemFactory factory = new DiskFileItemFactory(16, null);
      //fieldName: The name of the form field ; The second parameter  ContentType; The third parameter isFormField; The fourth one : file name 
      FileItem item = factory.createItem(fieldName, "text/plain", true, file.getName());
      int bytesRead = 0;
      byte[] buffer = new byte[8192];
      FileInputStream fis = null;
      OutputStream os = null;
      try {
    
       fis = new FileInputStream(file);
       os = item.getOutputStream();
       while((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
    
        os.write(buffer, 0, bytesRead);// from buffer Get data from and write 
       }
      } catch(IOException e) {
    
       e.printStackTrace();
      } finally {
    
       try {
    
        if(os != null) {
    
         os.close();
        }
        if(fis != null) {
    
         fis.close();
        }
       } catch (IOException e) {
    
        e.printStackTrace();
       }
      }
      return item;
     }
   // Use 
    FileItem fileItem = createFileItem(xxFile, " Form field name ");
    CommonsMultipartFile xxCMF = new CommonsMultipartFile(fileItem);
    //xxCMF Is the transformed CommonsMultipartFile file 
原网站

版权声明
本文为[codepig16]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130559466767.html