#mysql #node.js #base64 #blob
#mysql #node.js #base64 #большой двоичный объект
Вопрос:
Я хочу вставить строку base64 в блог mysql. Для этого я использую приведенный ниже код, но при запуске кода у меня появляется следующая ошибка:
ER_DATA_TOO_LONG: данные слишком длинные для столбца ‘Imagine’ в строке 1
Imagine — это изображение base64 (png или jpg)
Node.js Код:
async function inserimentoTipologia(Nome, Immagine) {
var ret = true;
var imgCast = new Buffer.from(Immagine, "base64");
checkValueLoad = await new Promise((resolve, reject) => {
return db.con.query("Insert into Categoria(Nome,Immagine) values( ? , ? ); ", [Nome, imgCast], function(err, results) {
if (err) {
ManageError.SendError("Errore: nella funzione inserimentoTipologia " err);
ret = false;
}
resolve(true);
});
});
return ret;
}
Комментарии:
1. Вы не вставляете
base64
строку —imgCast
этоBuffer
. Какого типаImagine
?2. Согласен с @eol. . Какой тип вы установили для
Immagine
столбца? И вторая попытка выглядит так :const imgCast = new Buffer.from(Immagine).toString('base64')
.3. imagine — это base64 png
Ответ №1:
var ret = true;
checkValueLoad = await new Promise((resolve, reject) => {
return db.con.query("Insert into Categoria(Nome,Immagine) values( ? , ? ); ", [Nome, Buffer.from(Immagine).toString('base64')], function(err, results) {
if (err) {
ManageError.SendError("Errore: nella funzione inserimentoTipologia " err);
ret = false;
}
resolve(true);
});
});
return ret;
}