使用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编码值。