como enviar imagem para o servidor com http.post em javascript e armazenar base64 no mongodb
Tenho problemas para entrar em solicitações http no lado do cliente, armazenando imagens no lado do servidor usando o mongodb. Eu aprecio muito a ajuda. Preciso de um exemplo fácil de como adiciono um arquivo de imagem como dados a uma solicitação de postagem http, como XMLhttprequest. Digamos, eu sei o URL do método do servidor. A fonte da imagem é definida em
imgsrc
um nome do arquivo é armazenado em
name
Eu tenho este atm:
var http = new XMLHttpRequest();
httpPost.onreadystatechange = function(err) {
if (httpPost.readyState == 4 && httpPost.status == 200){
console.log(httpPost.responseText);
} else {
console.log(err);
}
}
var path = "http://127.0.0.1:8000/uploadImage/"+name;
httpPost.open("POST", path, true);
// I guess I have to add the imagedata into the httpPost here, but i dont know how
httpPost.send(null);
Em seguida, no lado do servidor no caminho, o método a seguir será chamado e desejo armazenar o URL da imagem codificada em base64 no mongodb. Como acesso a imagem do httpPost?
function postNewImageType(req, res, next){
var newImageTypeData = {
name: req.params.name,
image: "placeholder.png"
}
var data = // how to access the image?
var imageBuffer = decodeBase64Image(data);
fs.writeFile(cfg.imageFolger+newImageTypeData._id+'.jpeg', imageBuffer.data, function(err){
if (err) return new Error(err);
newImageTypeData.set({image:newImageTypeData._id+'.jpeg'});
var image = new ImageType(newImageData);
});
imagetype.save(function (err) {
if (error) {return next(new restify.InvalidArgumentError(JSON.stringify(error.errors)));}
else { res.send(201, imagetype);}
});
}