我在MySQL BDD中将图像存储为blob。 我调用我的节点API,用JQuery Ajax返回我的BDD行:
$.ajax({
url: "http://mydinners.fr:5280/partner",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function(text){
for(var i=0; i<text["message"].length; i++){
var objurl = window.URL.createObjectURL(new Blob(text["message"][i]["partner_image"]));
// text["message"][i]["image"] is an array of point like : [192,257,54,269,85,458,...]
var module = "";
module += "<img class='activator' src='"+objurl+"'>";
$(".container .row").append(module);
}
}
});
objurl值是这样的:“blob:http%3A // dev.mydinners.fr / e73c5c6f-562e-4b66-9d4e-7a4c8567532e”
但图像是这样的:http://i.stack.imgur.com/Vhma7.png
你知道如何将我的blob图像从mysql翻译成img吗?谢谢。
在创建blob之前,必须将数组转换为二进制数据(使用Uint8Array)
var binary = new Uint8Array(json.message[0].partner_image)
这有点无关紧要,但是当你使用Uint8Array时它是一个工作的例子,我只选择我自己的获取/打印数据的方式
fetch("http://mydinners.fr:5280/partner")
.then(res => res.json())
.then(json => {
let binary = new Uint8Array(json.message[0].partner_image)
let blob = new Blob([binary])
let img = new Image()
img.src = URL.createObjectURL(blob)
document.body.appendChild(img)
})