我写的函数,将Base64字符串转换为Base64十六进制字符串,现在它被正确地转换为显示为BLOB png图像......但问题是当我在数据库浏览器中为SQLite打开字段时,它将此转换值写入文本,并必须写为二进制(以便图像将被识别并显示时,我选择图像在DB浏览器SQLIte ...所以问题是我怎么能Base64十六进制字符串插入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的十六进制为文本而不是二进制。 ..我需要写在插入语句插入它为二进制?
可能的[客户端Javascript中的Base64编码和解码]重复(https://stackoverflow.com/questions/2820249/base64-encoding-and-decoding-in-client-side-javascript) – pabrantes
可能的重复[如何在HTML中显示Base64图像?](https://stackoverflow.com/questions/8499633/how-to-display-base64-images-in-html) – damd
我认为这是不重复我需要从MySQL读取blob base64文本图像,然后将其保存到sqlite3数据库,以便它可以在sqlite3数据库中显示图像作为图像不是文本 – John