Java 如何将byte[]转换为commonMultipartFile

Java 如何将byte[]转换为commonMultipartFile,java,spring,spring-boot,Java,Spring,Spring Boot,我的Spring Boot应用程序中有以下部分代码: base64str变量有一个encode base 64图像 byte[] data = Base64.decode(base64str); 但是我需要将这个数组字节转换为org.springframework.web.multipart.commons.commons multipartfile 然后使用这个方法(CommonMultipartFile是MultipartFile的一个实现,这就是我使用它的原因) 非常感谢 可能有几种解决

我的Spring Boot应用程序中有以下部分代码:

base64str
变量有一个encode base 64图像

byte[] data = Base64.decode(base64str);
但是我需要将这个数组字节转换为
org.springframework.web.multipart.commons.commons multipartfile

然后使用这个方法(CommonMultipartFile是MultipartFile的一个实现,这就是我使用它的原因)


非常感谢

可能有几种解决方案:

  • 我会检查
    uploadFile
    方法是否没有重载,该方法接受的不是
    MultipartFile
    的内容,或者如果这是一个自定义类,也许可以修改它以接受其他内容

  • 您可以使用
    Files.write()
    将ByteArray写入文件系统,然后根据需要使用
    CommonsMultipartFile
    。不要忘记以后清理文件或使用临时文件机制

  • 实际上,实现自己版本的
    MultipartFile
    相当容易。该接口只有几个方法,如果有字节数组,则可以轻松创建这些方法

  • 实际上有一个
    MockMultipartFile
    ,它也实现了
    MultipartFile
    ,并且只在构造函数中获取一个字节数组。这是一个有点肮脏的黑客,因为它只是为了测试的目的

  • AmazonClient.uploadFile(folder, MultipartFile)