如何将字节数组转换为MultipartFile

我正在接收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.commons.CommonsMultipartFile。可以在此处找到该实现的API

另外,作为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);

}

}

以上是 如何将字节数组转换为MultipartFile 的全部内容, 来源链接: utcz.com/qa/435693.html

回到顶部