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;
            }
        }
      
    }
  • 相关阅读:
    政府网文件搜索列表页
    docker 容器间相互连接
    asp.net core 3.1 中使用cookie
    abp vnext 去IdentityServer 精简单体项目基于abp vnext 3.2版本
    c# 图片加文字,横线,圆
    淘宝客根据优惠券url更新优惠券信息
    软件产品ui模型制作工具
    在类库中获取配置信息 asp.net core 3.1
    vs 或 Android Studio 使用Visual Studio Emulator for Android调试安卓程序
    ABP 替换异常过滤器
  • 原文地址:https://www.cnblogs.com/zagwk/p/15623386.html
Copyright © 2011-2022 走看看