Newer
Older
casic-PTZ / casic-common / src / main / java / com / casic / missiles / util / FileUtil.java
casic_zt on 20 Apr 2023 4 KB 字典枚举提交
//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;
//    }
//
//}