GATEWAY网关上传文件问题

2022-07-03 14:49:42

GATEWAY网关上传文件问题

gateway网关上传文件,MultipartFile在接口中无法解析到,所以需要把要上传的文件进行Base64编码,通过json格式传给后台。

解析前端传的Base64数据

1、自定义File类

继承MultipartFile类

import org.springframework.web.multipart.MultipartFile;import java.io.*;/**
 * base64 转 MultipartFile
 *
 * @author PCCW
 */publicclassMyMultipartFileimplementsMultipartFile{privatefinalbyte[] imgContent;privatefinal String header;publicBase64DecodedMultipartFile(byte[] imgContent, String header){this.imgContent= imgContent;this.header= header.split(";")[0];}@Overridepublic StringgetName(){return System.currentTimeMillis()+ Math.random()+"."+ header.split("/")[1];}@Overridepublic StringgetOriginalFilename(){return System.currentTimeMillis()+(int)(Math.random()*10000)+"."+ header.split("/")[1];}@Overridepublic StringgetContentType(){return header.split(":")[1];}@OverridepublicbooleanisEmpty(){return imgContent== null|| imgContent.length==0;}@OverridepubliclonggetSize(){return imgContent.length;}@Overridepublicbyte[]getBytes(){return imgContent;}@Overridepublic InputStreamgetInputStream(){returnnewByteArrayInputStream(imgContent);}@OverridepublicvoidtransferTo(File dest)throws IOException{try(FileOutputStream outputStream=newFileOutputStream(dest)){
            outputStream.write(imgContent);}catch(IOException e){
            e.printStackTrace();}}}

2、解析Base64数据

解析Base64工具类

import org.springframework.web.multipart.MultipartFile;import sun.misc.BASE64Decoder;import java.io.*;/**
 * base64 转 MultipartFile
 *
 * @author PCCW
 */publicclassMultipartFileUtils{/**
     * base64转MultipartFile
     * @param base64
     * @return
     */publicstatic MultipartFilebase64ToMultipart(String base64){try{
            String[] baseStrs= base64.split(",");
            BASE64Decoder decoder=newBASE64Decoder();byte[] b;
            b= decoder.decodeBuffer(baseStrs[1]);for(int i=0; i< b.length;++i){if(b[i]<0){
                    b[i]+=256;}}returnnewMyMultipartFile(b, baseStrs[0]);}catch(IOException e){
            e.printStackTrace();return null;}}}

参考:https://www.jianshu.com/p/0ee9b1a3b3e0

  • 作者:陌上青花』
  • 原文链接:https://blog.csdn.net/qq_39815502/article/details/110141587
    更新时间:2022-07-03 14:49:42