我的Spring Boot应用程序中包含以下代码部分:
base64str
变量具有基于64位编码的图像,
byte[] data = Base64.decode(base64str);
但是我需要将此数组字节转换为org.springframework.web.multipart.commons.CommonsMultipartFile
然后使用此方法(CommonsMultipartFile是MultipartFile的实现。这就是我使用它的原因)。
AmazonClient.uploadFile(folder, MultipartFile)
非常感谢!
答案 0 :(得分:1)
可能有一些解决方案:
我将检查uploadFile
方法是否没有重载,该方法可以接受MultipartFile
以外的其他内容,或者如果这是一个自定义类,则可以对其进行修改,以接受其他东西。
您可以使用Files.write()
将ByteArray写入文件系统,然后按预期使用CommonsMultipartFile
。不要忘记稍后清理文件或使用临时文件机制。
实施您自己的MultipartFile
版本实际上很容易。该接口只有少数方法,如果您有字节数组,则可以轻松创建。
实际上有一个MockMultipartFile
,它也实现了MultipartFile
,只是在构造函数中采用了字节数组。这有点脏,因为它仅用于测试目的。