一般的框架都是有直接上传文件的接口或者方法,那如何把base64转为

MultipartFile然后调用文件上传的方法呢,请看下面
public static MultipartFile convertBase64ToMultipartFile(String base64String, String fileName) throws IOException {
        // Step 1: 解码Base64字符串
        byte[] decodedBytes = Base64.getDecoder().decode(base64String);

        // Step 2: 转换为InputStream
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(decodedBytes);

        // Step 3: 创建MultipartFile
        MultipartFile multipartFile = new MockMultipartFile(fileName, fileName, "image/jpeg", byteArrayInputStream);

        return multipartFile;
    }


需要引入
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.12</version>
        </dependency>

详细用法解释和demo

import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.mock.web.MockMultipartFile;

import java.util.Base64;
import java.io.ByteArrayInputStream;
import java.io.IOException;

public class Base64ToMultipartFile {
    
    public static MultipartFile convertBase64ToMultipartFile(String base64String, String fileName) throws IOException {
        // Step 1: 解码Base64字符串
        byte[] decodedBytes = Base64.getDecoder().decode(base64String);

        // Step 2: 转换为InputStream
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(decodedBytes);
        
        // Step 3: 创建MultipartFile
        MultipartFile multipartFile = new MockMultipartFile(fileName, fileName, "image/jpeg", byteArrayInputStream);
        
        return multipartFile;
    }
    
    public static void main(String[] args) throws IOException {
        String base64String = "base64EncodedStringHere";  // 这里放你的Base64字符串
        MultipartFile file = convertBase64ToMultipartFile(base64String, "uploadedFile.jpg");
        
        // 输出MultipartFile的一些信息
        System.out.println("文件名: " + file.getOriginalFilename());
        System.out.println("文件大小: " + file.getSize() + " bytes");
    }
}
  • Base64解码:首先我们用Base64.getDecoder().decode(base64String)来解码Base64字符串,得到字节数组。
  • 输入流:通过ByteArrayInputStream将字节数组转换为输入流,这是MockMultipartFile构造函数需要的格式。
  • 创建MultipartFileMockMultipartFilespring提供的一个实现MultipartFile接口的类,用于测试或模拟文件上传。你可以根据实际需要调整文件类型(如"image/jpeg")。
  • 返回MultipartFile:返回的MultipartFile可以用来进行上传操作或其他处理。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐