我試圖保存並顯示來自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