zoukankan      html  css  js  c++  java
  • 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;
            }
        }
      
    }
  • 相关阅读:
    php数组常用函数
    java中Property类的基本用法
    properties文件不能输入中文
    Eclipse中Outline里各种图标的含义
    Eclipse的工程名有红色的感叹号,工程里面没有显示编译错误
    路径问题
    yum -y install 和yum install 的区别
    Linux下源码安装jdk
    Linux下安装rz、sz命令(文件上传下载)
    scp命令详解—跨服务器复制文件
  • 原文地址:https://www.cnblogs.com/zagwk/p/15623386.html
Copyright © 2011-2022 走看看