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;
            }
        }
      
    }
  • 相关阅读:
    HDUOJ 1397(素数筛选法)
    HDUOJ 2045 LELE的RPG难题
    HDUOJ 2018
    HDUOJ 2031
    HDUOJ 2050
    括号配对问题
    HDOJ 1102 Constructing Roads(最小生成树)
    HDOJ Prime Ring Problem (深度优先搜索)
    HDUOJ 1233 还是畅通工程(最小生成树基础)
    邻接表(转)
  • 原文地址:https://www.cnblogs.com/zagwk/p/15623386.html
Copyright © 2011-2022 走看看