我正在接收BASE64编码的String(encodedBytes)形式的图像,并使用以下方法在服务器端将其解码为byte []。
BASE64Decoder decoder = new BASE64Decoder(); byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);
现在我想使用上面获得的这个字节将其转换成MultipartFile吗?
有什么方法可以将byte []转换为org.springframework.web.multipart.MultipartFile吗?
org.springframework.web.multipart.MultipartFile 是一个接口,因此首先您需要使用该接口的实现。
org.springframework.web.multipart.MultipartFile
对于该接口,我可以看到的唯一可用的实现是org.springframework.web.multipart.commons.CommonsMultipartFile。可以在此处找到该实现的API
org.springframework.web.multipart.commons.CommonsMultipartFile
另外,作为org.springframework.web.multipart.MultipartFile接口,您可以提供自己的实现,只需包装字节数组即可。作为一个简单的例子:
/* *<p> * Trivial implementation of the {@link MultipartFile} interface to wrap a byte[] decoded * from a BASE64 encoded String *</p> */ public class BASE64DecodedMultipartFile implements MultipartFile { private final byte[] imgContent; public BASE64DecodedMultipartFile(byte[] imgContent) { this.imgContent = imgContent; } @Override public String getName() { // TODO - implementation depends on your requirements return null; } @Override public String getOriginalFilename() { // TODO - implementation depends on your requirements return null; } @Override public String getContentType() { // TODO - implementation depends on your requirements return null; } @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); } }