//package com.casic.missiles.util; // //import org.apache.commons.fileupload.FileItem; //import org.apache.commons.fileupload.FileItemFactory; //import org.apache.commons.fileupload.disk.DiskFileItemFactory; //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; //import org.springframework.http.MediaType; //import org.springframework.web.multipart.MultipartFile; //import org.springframework.web.multipart.commons.CommonsMultipartFile; // //import java.io.*; // ///** // * @Description: // * @Author: wangpeng // * @Date: 2023/4/7 15:37 // */ //public class FileUtil { // private static Logger log = LoggerFactory.getLogger(FileUtil.class); // // /** // * MultipartFile转File // */ // public static File multipartFileToFile(MultipartFile multipartFile) { // File file = null; // InputStream inputStream = null; // OutputStream outputStream = null; // try { // inputStream = multipartFile.getInputStream(); // file = new File(multipartFile.getOriginalFilename()); // outputStream = new FileOutputStream(file); // //项目根目录下放置文件 // write(inputStream, outputStream); // } catch (IOException e) { // e.printStackTrace(); // } finally { // if (inputStream != null) { // try { // inputStream.close(); // } catch (IOException e) { // e.printStackTrace(); // } // } // if (outputStream != null) { // try { // outputStream.close(); // } catch (IOException e) { // e.printStackTrace(); // } // } // } // return file; // } // // public static void write(InputStream inputStream, OutputStream outputStream) { // byte[] buffer = new byte[4096]; // try { // int count = inputStream.read(buffer, 0, buffer.length); // while (count != -1) { // outputStream.write(buffer, 0, count); // count = inputStream.read(buffer, 0, buffer.length); // } // } catch (RuntimeException e) { // throw e; // } catch (Exception e) { // throw new RuntimeException(e.getMessage(), e); // } // } // // public static MultipartFile getMultipartFile(InputStream inputStream, String fileName) { // FileItem fileItem = createFileItem(inputStream, fileName); // //CommonsMultipartFile是feign对multipartFile的封装,但是要FileItem类对象 // return new CommonsMultipartFile(fileItem); // } // // /** // * FileItem类对象创建 // */ // public static FileItem createFileItem(InputStream inputStream, String fileName) { // FileItemFactory factory = new DiskFileItemFactory(16, null); // String textFieldName = "file"; // FileItem item = factory.createItem(textFieldName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName); // int bytesRead = 0; // byte[] buffer = new byte[8192]; // OutputStream os = null; // //使用输出流输出输入流的字节 // try { // os = item.getOutputStream(); // while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { // os.write(buffer, 0, bytesRead); // } // inputStream.close(); // } catch (IOException e) { // log.error("Stream copy exception", e); // throw new IllegalArgumentException("文件上传失败"); // } finally { // if (os != null) { // try { // os.close(); // } catch (IOException e) { // log.error("Stream close exception", e); // } // } // if (inputStream != null) { // try { // inputStream.close(); // } catch (IOException e) { // log.error("Stream close exception", e); // } // } // } // return item; // } // //}