File转换为MultipartFile工具类

 1 package cn.com.utils;
 2 
 3 import org.apache.commons.fileupload.FileItem;
 4 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 5 import org.springframework.util.FileCopyUtils;
 6 import org.springframework.web.multipart.MultipartFile;
 7 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 8 
 9 import javax.activation.MimetypesFileTypeMap;
10 import java.io.ByteArrayInputStream;
11 import java.io.File;
12 import java.io.InputStream;
13 import java.io.OutputStream;
14 
15 public class FileToMultipartFileUtil {
16 
17 
18     public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception {
19         DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
20         String contentType = new MimetypesFileTypeMap().getContentType(file);
21         FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName());
22         try (
23                 InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file));
24                 OutputStream outputStream = fileItem.getOutputStream()
25         ) {
26             FileCopyUtils.copy(inputStream, outputStream);
27         } catch (Exception e) {
28             throw e;
29         }
30         MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
31         return multipartFile;
32     }
33 
34 
35     public static MultipartFile toMultipartFile(String fieldName, String fileName, byte[] fileByteArray) throws Exception {
36         DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
37         String contentType = new MimetypesFileTypeMap().getContentType(fileName);
38         FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, fileName);
39         try (
40                 InputStream inputStream = new ByteArrayInputStream(fileByteArray);
41                 OutputStream outputStream = fileItem.getOutputStream()
42         ) {
43             FileCopyUtils.copy(inputStream, outputStream);
44         } catch (Exception e) {
45             throw e;
46         }
47         MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
48         return multipartFile;
49     }
50 
51 }
原文地址:https://www.cnblogs.com/bevis-byf/p/11658683.html