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 ?