我已经将jpeg图像存储在mysql数据库中,格式为longblob ...现在我读了那个longblob,想要检索jpeg图像,看它看起来怎么样..我只得到base64字符串,所以如何在mysql或节点中转换它JS?
这是我从数据库中读取的base64字符串:
https:// jsfiddle.net/ ej4c9pk3/
如何将其解码为jpeg图像,以便我可以看到它的外观,然后我可以在网页上显示它。
图像base64文本在链接上...所以你可以看到它并尝试解码为jpeg。
答案 0 :(得分:0)
我编写将Base64字符串转换为Base64 Hex String的函数,现在它被正确转换为显示为BLOB png图像...但问题是当我在DB Browser中打开字段时,它将这个转换后的值写为Text,并且必须写成二进制文件(这样当我在数据库浏览器中为SQLIte选择图像时,图像将被识别并显示...所以问题是如何将Base64 Hex String作为二进制文件插入SQLite3数据库?
这是我的插入代码:
/* GET - channels_logo */
for (var i in rows) {
/* WRITE - table channels_logo */
db.prepare('INSERT INTO channels_logo (logo_id, logo_channel, logo_png) VALUES
("'+rows[i].id+'", "'+rows[i].channel+'", "'+(base64toHex(new Buffer(rows[i].logo).toString()))+'")').run();
};
function base64toHex(base64) {
/* DEFINE - variables */
var raw = atob(base64);
var HEX = '';
for (i = 0; i < raw.length; i++) {
var _hex = raw.charCodeAt(i).toString(16)
HEX += (_hex.length==2?_hex:'0'+_hex);
};
return HEX.toUpperCase();
};
[![Using this insert code is inserted as Text:][1]][1]
https://i.stack.imgur.com/iZ2A1.jpg
[![And needs to be binary inserted and now it looks ok (i just erase text and copy text inserted into binary and now it works)][1]][1]
https://i.stack.imgur.com/ZzGTU.jpg
所以我看到SQLite3显示插入了Base64 Hex As Text而不是二进制...我需要在insert语句中编写什么来插入它作为二进制文件?