• base64转MultipartFile


    原文:https://www.cnblogs.com/dsn727455218/p/10536626.html

    调用方法:MultipartFile file = BASE64DecodedMultipartFile.base64ToMultipart(String base64);

    public class BASE64DecodedMultipartFile implements MultipartFile {
      
        private final byte[] imgContent;
        private final String header;
      
        public BASE64DecodedMultipartFile(byte[] imgContent, String header) {
            this.imgContent = imgContent;
            this.header = header.split(";")[0];
        }
      
        @Override
        public String getName() {
            return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];
        }
      
        @Override
        public String getOriginalFilename() {
            return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1];
        }
      
        @Override
        public String getContentType() {
            return header.split(":")[1];
        }
      
        @Override
        public boolean isEmpty() {
            return imgContent == null || imgContent.length == 0;
        }
      
        @Override
        public long getSize() {
            return imgContent.length;
        }
      
        @Override
        public byte[] getBytes() throws IOException {
            return imgContent;
        }
      
        @Override
        public InputStream getInputStream() throws IOException {
            return new ByteArrayInputStream(imgContent);
        }
      
        @Override
        public void transferTo(File dest) throws IOException, IllegalStateException {
            new FileOutputStream(dest).write(imgContent);
        }
      
        public static MultipartFile base64ToMultipart(String base64) {
            try {
                String[] baseStrs = base64.split(",");
      
                BASE64Decoder decoder = new BASE64Decoder();
                byte[] b = new byte[0];
                b = decoder.decodeBuffer(baseStrs[1]);
      
                for (int i = 0; i < b.length; ++i) {
                    if (b[i] < 0) {
                        b[i] += 256;
                    }
                }
                return new BASE64DecodedMultipartFile(b, baseStrs[0]);
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
      
    }
  • 相关阅读:
    It is unuseful to regret
    越难熬的时候,越要靠自己
    2019/11/11
    QT Http
    QT 初步认识
    模板
    RTTI(Runtime Type Infomation)
    位域
    C++ 多字节string转UTF-8 string
    C++ 读写csv文件
  • 原文地址:https://www.cnblogs.com/zagwk/p/15623386.html
Copyright © 2020-2023  润新知