package com.agentdriving.driver.modular.system.util; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; import java.util.UUID; /** * @author zhibing.pu * @date 2023/5/23 18:29 */ public class MultipartFileUtil { private MultipartFileUtil() { } // public static MultipartFile fileToMultipartFile(String path) { // URL url = new URL(path); // URLConnection urlConnection = url.openConnection(); // InputStream inputStream = urlConnection.getInputStream(); // // FileItem fileItem = createFileItem(inputStream, file); // MultipartFile multipartFile = new CommonsMultipartFile(fileItem); // return multipartFile; // } public static MultipartFile fileToMultipartFile(File file) { FileItem fileItem = createFileItem(file); MultipartFile multipartFile = new CommonsMultipartFile(fileItem); return multipartFile; } private static FileItem createFileItem(File file) { FileItemFactory factory = new DiskFileItemFactory(16, null); FileItem item = factory.createItem("textField", "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(); } return item; } private static FileItem createFileItem(InputStream inputStream, String fileName) { FileItemFactory factory = new DiskFileItemFactory(16, null); FileItem item = factory.createItem("textField", "text/plain", true, fileName); int bytesRead = 0; byte[] buffer = new byte[8192]; try { OutputStream os = item.getOutputStream(); while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } return item; } public static void main(String[] ages){ // String url = "https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/admin%2F%2Fstorage%2Femulated%2F0%2FAndroid%2Fdata%2Fcom.cheaper.driver%2Fcache%2Fimage%2F1681352347391.jpg"; // MultipartFile multipartFile = MultipartFileUtil.fileToMultipartFile(url); // System.err.println(multipartFile.getName()); } }