将byte []转换为数据URI的Base64字符串

El *_*apo 37 html java base64 bytearray

我知道这可能已被问过10000次,但是,我似乎无法找到问题的直接答案.

我有一个存储在我的数据库中的LOB代表一个图像; 我从数据库中获取该图像,我想通过HTML IMG标记在网页上显示它.这不是我的首选解决方案,但它是一个临时实施,直到我找到更好的解决方案.

我正在尝试使用Apache Commons Codec以下列方式将byte []转换为Base64:

String base64String = Base64.encodeBase64String({my byte[]});
Run Code Online (Sandbox Code Playgroud)

然后,我试图在我的页面上显示我的图像,如下所示:

<img src="data:image/jpg;base64,{base64String from above}"/>
Run Code Online (Sandbox Code Playgroud)

它显示浏览器的默认"我找不到这个图像",图像.

有没有人有任何想法?

谢谢.

Why*_*ugo 40

我使用它并且它工作正常(与接受的答案相反,它使用的格式不建议用于此场景):

StringBuilder sb = new StringBuilder();
sb.append("data:image/png;base64,");
sb.append(StringUtils.newStringUtf8(Base64.encodeBase64(imageByteArray, false)));
contourChart = sb.toString();
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案,没有UTF8编码,浏览器会给你带来所有的麻烦. (2认同)
  • 您使用什么进口? (2认同)

Cro*_*zin 12

根据官方文档Base64.encodeBase64URLSafeString(byte[] binaryData)应该是你正在寻找的.

JPG的mime类型也是image/jpeg.