我需要将图像从java显示到freemarker模板。我将ByteArrayOutputStream
转换为bytearray
,然后使用org.apache.commons.codec.binary.Base64
转换为64。我没有得到任何错误,但图像是空白的。有人可以在freemarker模板或我的代码中说明什么是错误的
爪哇
ByteArrayOutputStream image = null;
SFTPFileTransferFrom st = new SFTPFileTransferFrom();
image = st.execute(profilePhoto.getImageFilePath(),
profilePhoto.getImageFileName(), null);
is = image.toByteArray();
byte[] imgBytesAsBase64 = Base64.encodeBase64(is);
String imgDataAsBase64 = new String(imgBytesAsBase64);
String imgAsBase64 = "data:image/jpg;base64," + imgDataAsBase64;
rootMap.put("imgAsBase64", imgAsBase64);
FTL
<td rowspan="6" align="center" width="120" style="border:1px solid #ccc;"><img alt="Photo" src="${imgAsBase64}" /></td>
Base64字符串
data:image/jpg;base64,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...