如何在网页中将数据库中存储的图像显示为blob

时间:2012-10-29 13:21:10

标签: javascript html sql image webpage

我想在网页中显示一个图像,该图像作为blob类型存储在数据库中。我成功地将数据存储为数据库中的二进制/图像类型。但是我怎样才能在网页上显示它。当我从中检索时,我得到的图像就像符号( JFIF fExif II* >)数据库中。

3 个答案:

答案 0 :(得分:4)

您应该将图像数据转换为base64,然后写入响应,例如:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
 NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
 cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
 gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
 aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
 v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
 NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
 Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
 AAAAAElFTkSuQmCC" alt="beastie.png" /> 

http://www.techerator.com/2011/12/how-to-embed-images-directly-into-your-html/

或者您可以链接到服务器脚本,该脚本返回包含任何图像内容类型的标题,并直接将图像数据写入响应。

答案 1 :(得分:0)

这是我不得不使用Ajax将数据库(SQL Server)中的二进制图像渲染为html页面时使用的代码

stm = conn.prepareStatement("SELECT IMAGE FROM TABLE" );
rs = stm.executeQuery();
return rs

然后使用ajax(存储在“响应”中)接收原始rs:

        $.post('./getImagePage.jsp', {
            action : 'getImage'
        }, function(response) {         
            if (response != ''){                                                        
                var arrayBufferView = new Uint8Array( response[0].IMAGE);                                       
                var blob = new Blob( [ arrayBufferView ], { type: "image/jpg" } );
                var urlCreator = window.URL || window.webkitURL;
                var imageUrl = urlCreator.createObjectURL( blob );                                  
                var img = document.querySelector("#fotoMb");
                img.src = imageUrl;                     
        });     

和HTML:

<img id="fotoMb" style="border:5px solid;">

答案 2 :(得分:-1)

我建议你不要将图像保存到数据库中! 这可以使您的数据库服务器加载缓慢! 简短回答,将图像保存在您的Web服务器的文件夹中,并仅引用保存文件的URL。 祝你好运!