Я хочу взять изображение из формы в html и кодировать в BLOB-объект и вставить в базу данных mysql и конечную точку express.
У меня фактически есть:
app.use(fileUpload())
app.post('/uploadImage', function(req, res) {
if (!req.files || Object.keys(req.files).length === 0) {
return res.status(400).send('No files were uploaded.');
}
var encoded = base64.encode(req.files.sampleFile.data);
connection.query(
'INSERT INTO ICONS (ID, LANGUAGE_ICON) VALUES (1,"'+encoded+'")' ,
//'INSERT INTO ICONS (ID,LANGUAGE_ICON) VALUES (1,'+JSON.stringify(encoded)+')' ,
function(err, response) {
if(err){
//console.log(err);
console.log("ERROR!")
res.json({ data: "ERROR" });
res.end();
}else{
console.log("Correcto!")
res.json({ data: encoded });
res.end();
}
}
);
Этот код WORK PERFECT , потому что я беру ответ JSON и проверяю на странице изображения декодирования base64.
Но когда я хочу DECODE в другой конечной точке, возвращается longblob, но НЕ РАБОТАЕТ
router.get("/icons", function(req, res) {
connection.query("select * from icons " , function(err, result) {
console.log(result);
if (result != "") {
var respuesta = [];
for (var i = 0; i < result.length; i++) {
var base64String = base64.encode(result[i].LANGUAGE_ICON);
respuesta[i] = base64String;
}
res.json({ iconos: respuesta });
}
else {
res.json({ data: null });
}
});
});
Эта последняя конечная точка прекрасно работает, когда я вставляю изображения через JS, например:
var query2 = connection.query('create table icons (id int,LANGUAGE_ICON LONGBLOB)', function(err, result){
console.log(result);
})
var A ={
id:1,
LANGUAGE_ICON: fs.readFileSync('./src/app/Blog/assets/es.png')
}
var query = connection.query('INSERT INTO icons SET ?', A, function(err, result){
if(err){
console.log("te")
}else{
console.log(result);
}
})
A