Eu armazenei minhas imagens no banco de dados mysql. Quando estou tentando recuperá-las, estou obtendo minha imagem junto com uma longa sequência de buffers. Aqui está meu código:
var sql ="SELECT rname,image FROM recipes WHERE ringre LIKE '%" +items[0]+"%' ";
for( var i=1;i<items.length;i++){
sql = sql + "AND ringre LIKE '%"+items[+i]+"%' ";
}
console.log(sql);
con.query(sql, function(err,result){
if(err){
throw err;
}else{
console.log(result);
var result1 = JSON.stringify(result);
res.render("recipes_response",{ data: result[0].image.toString('base64'), recipes: result1});
}
});
});
Mas eu só quero a imagem e o rname. Alguém vai me ajudar?
Estou assumindo que você está usando modelos EJS, então se você escrever:
con.query(sql, function(err,result){
if(err){
throw err;
}else{
res.render("recipes_response", { data: result[0].image.toString('base64'), rname: result[0].rname});
}
});
Em seguida, na sua pasta / views /, crie recipes_response.ejs
recipes_response.ejs
<html>
<body>
<div class="container">
<h3>Image test</h3>
<div>
<h4>Recipe name: <%= rname %></h4>
<img src="data:image/png;base64, <%= data %>" alt="DB Image" />
</div>
</div>
</body>
</html>
Multiple Recipes
con.query(sql, function(err,result){
if(err){
throw err;
}else{
let recipes = result.map(row => { return { rname: row.rname, image: row.image.toString('base64')}});
res.render("recipes_response_list", { recipes } );
}
});
Em seguida, crie um novo modelo:
recipes_response_list.ejs
<html>
<body>
<div class="container">
<h3>Recipes</h3>
<% for (let recipe of recipes){ %> %>
<div>
<h4>Recipe name: <%= recipe.rname %></h4>
<img src="data:image/png;base64, <%= recipe.image %>" alt="Recipe image" />
</div>
<% } %>
</div>
</body>
</html>
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras