我试图保存并显示来自mongodb数据库的图像。我将它保存在以base-64字符串格式化的数据库中。 例如这是那些图像中的一个:无法显示图像,因为它包含错误jsp
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/+EN/kV4aWYAAE1NACoAAAAIAAgBMgACAAAAFAAAAG4BOwACAAAACwAAAIJHRgADAAAAAQAFAABHSQADA......
这是其改变图像的字符串格式的字节数组findImage服务:
public byte[] findImage(String id)
{
String str = chRepository.findImage(id);
byte[] b = str.getBytes();
return b;
}
,这是findImage在控制器类:
@GetMapping("/findImage/{id}")
public byte[] findImage(@PathVariable String id) throws IOException
{
byte[] bb = IOUtils.toByteArray(new ByteArrayInputStream(chService.findImage(id)));
return bb;
}
我在地址栏中显示图片:
<script>
function makeURL(val, row) {
if (val){
return '<a target="_blank" href= "' +window.location.href+ 'ch/findImage/' + val + '">image</a>';
}
}
</script>
但调用这样一个URL时:
http://localhost:8080/ch/findImage/5
它给人的错误:无法显示图像,因为它包含错误。
注意:我猜服务findImage函数存在一个问题,它将base-64字符串更改为byte []数组,但我不知道如何将其更改为正确的格式。
向我们展示了整个JSP标签 –
说你的形象将成为'png'形象,那么要么做etContentType(“img/png”);'或做一些像'response.setHeader(“content-type”,“img/png”);'。 –
这只是一个按钮,其onclick功能设置在makeURL @BasilBattikhi – user5621266