Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 使用Cassandra数据库blob数据显示图像_Html_Node.js_Cassandra - Fatal编程技术网

Html 使用Cassandra数据库blob数据显示图像

Html 使用Cassandra数据库blob数据显示图像,html,node.js,cassandra,Html,Node.js,Cassandra,我正在将一个图像存储到cassandra db(blob数据),我试图获取数据并在html页面中显示,但它显示了一些垃圾数据 我将cassandra用作数据库,NodeJS用作后端服务器,cassandra客户端用于处理cassandra数据库 完整描述- 我能够将图像存储到cassandra数据库 我也从cassandra数据库中获取图像数据,但我不知道数据是哪种格式的?(base64、binary…等等) 我还能够使用下面的代码将数据写入图像文件- var fs = require("fs"

我正在将一个图像存储到cassandra db(blob数据),我试图获取数据并在html页面中显示,但它显示了一些垃圾数据

我将cassandra用作数据库,NodeJS用作后端服务器,cassandra客户端用于处理cassandra数据库

完整描述-

我能够将图像存储到cassandra数据库

我也从cassandra数据库中获取图像数据,但我不知道数据是哪种格式的?(base64、binary…等等)

我还能够使用下面的代码将数据写入图像文件-

var fs = require("fs");
fs.writeFile("file1.png", new Buffer(imgData, "base64"), function(err) {});
但我不想将数据写入文件。我想将数据直接流式传输到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>
$.ajax({
网址:'http://10.0.0.1:3000/getMap', 
键入:“GET”,
标题:{
“接受”:“图像/jpg”,
“内容类型”:“图像/jpg”,
    },
成功:函数(数据){
控制台日志(“内部成功”);
$('#mapdiv').html('');
    }
   }); 
但是我在div里得到了一些垃圾数据

提前谢谢
Subhra

Cassandra将数据存储为二进制。因此,如果您的文件写入代码按预期工作,我猜JS代码中的数据变量应该是您从Cassandra获得的base64编码值。

您的二进制内容将以字节数组的形式存储在Cassandra中,并带有大的字符。为了让HTML正常工作,首先需要将该字节数组转换为base64编码的字符串


不过需要注意的是,根据机器的体系结构,您可能需要首先将字节数组转换回little endian格式。如果使用little endian,通常只需反转字节数组的内容即可。

谢谢Aaron,在将二进制数据转换为base64 sting之后,它对我起到了作用。我使用了以下代码将二进制数据转换为base64-base64data=新缓冲区(imgData,'binary')。toString('base64');看起来不错!从您发布的代码片段来看,您不需要担心endianness。