java中文件上传下载将file转为MultipartFile


方式1:简单明了

jar包依赖:


  org.apache.httpcomponents
  httpcore
  4.4.9


  org.springframework
  spring-test
  5.1.6.RELEASE

代码

File pdfFile = new File("D://test.pdf");
FileInputStream fileInputStream = new FileInputStream(pdfFile);
MultipartFile multipartFile = new MockMultipartFile(pdfFile.getName(), pdfFile.getName(),
   ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);

方式2:不用引入新包

public static MultipartFile fileToMultipartFile(File file) throws IOException {
    FileItemFactory factory = new DiskFileItemFactory(16, null);
    FileItem item=factory.createItem(file.getName(),"text/plain",true,file.getName());
    int bytesRead = 0;
    byte[] buffer = new byte[8192];
    try {
        FileInputStream fis = new FileInputStream(file);
        OutputStream os = item.getOutputStream();
        while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
            os.write(buffer, 0, bytesRead);
        }
        os.close();
        fis.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    MultipartFile multipartFile = new CommonsMultipartFile(item);
    return  multipartFile;

}