I have a base64 encoded string which is posted using JSON into a Spring form.
data:image/png;base64,iVBORw0KGg......etc
I want to add this image as an attachment to an email. Attaching the file works fine, but it is just adding the base64 string as the attachment.
I am using the following code to create the attachment part.
private MimeBodyPart addAttachment(final String fileName, final String fileContent) throws MessagingException {
if (fileName == null || fileContent == null) {
return null;
}
LOG.debug("addAttachment()");
MimeBodyPart filePart = new MimeBodyPart();
String data = fileContent;
DataSource ds;
ds = new ByteArrayDataSource(data.getBytes(), "image/*");
// "image/*"
filePart.setDataHandler(new DataHandler(ds));
filePart.setFileName(fileName);
LOG.debug("addAttachment success !");
return filePart;
}
I also tried
ds = new ByteArrayDataSource(data, "image/*");
How can I convert the base64 string into a proper image file using the ByteArrayDataSource ?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…