使用Cassandra数据库blob数据显示图像
我正在将图像存储到cassandra db(blob数据),我试图获取数据并显示在我的html页面,但它显示了一些垃圾数据。
我使用cassandra作为数据库,节点js作为后端服务器和cassandara-client来处理cassandra数据库。
完整描述 –
我能够将图像存储到cassandra数据库。
我也从cassandra数据库获取图像数据,但是我不知道数据的格式(base64,binary …等)。
我也可以使用下面的代码将数据写入一个图像文件,
var fs = require("fs"); fs.writeFile("file1.png", new Buffer(imgData, "base64"), function(err) {});
但我不想将数据写入文件。我想直接将数据stream到html中的图像中。我已经使用下面的代码在我的html页面中显示图像 –
$.ajax({ url: 'http://10.0.0.1:3000/getMap', type: 'GET', headers: { "accept": "image/jpg", "content-Type": "image/jpg", }, success: function(data) { console.log("Inside success"); $('#mapdiv').html('<img src="data:image/jpg;base64,'+data+'" height="200px" width="500px"/>'); } }); <div id="mapdiv"></div>
但我得到一些垃圾数据里面的div。
在此先感谢Subhra
您的二进制内容将以大字节的forms存储在Cassandra中的一个字节数组中。 为了使您的HTML工作,您将需要首先将该字节数组转换为base64编码的string。
需要注意的一点是 – 根据机器的体系结构,可能需要先将字节数组转换回小端格式。 如果你使用的是小字节,这通常只是颠倒字节数组的内容。
Cassandra以二进制forms存储数据。 所以,如果你写的文件代码按预期工作,我猜你的JS代码中的数据variables应该是从Cassandra得到的base64编码值。