I'm using MEAN.io and i'm trying to upload a base64 encoded image.
Client side, AngularJS:
// Image we're going to send it out
var base64Image = files[i];
var file = {
image: base64Image,
type: type,
filetype: extension,
characterId: character._id
};
var newFile = new MediaSendBase64(file);
newFile.$save(function(image) {
if ( !image ) {
console.log('ERROR IMAGE');
}
else {
console.log('SUCCESS.');
console.log(image);
}
});
Server side, NodeJS, controller:
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
exports.uploadBase64 = function(req, res, next) {
var uploadPath = path.normalize(process.cwd() + '/packages/characters/public/assets/uploads/'),
data = new Buffer(''),
imgURL = undefined, // public URL to show the pic
type = undefined;
// In case the '/uploads' directoy doesn't exist
if( !fs.existsSync(uploadPath) ) {
fs.mkdirSync(uploadPath, 0755);
}
// Decoding the base64 image
var data = new Buffer(req.body.image, 'base64');
// Creating the name for the file --> characterId + type + timestamp + extension
var filename = req.body.characterId + '-' + req.body.type + '-' + new Date().getTime().toString() + '.' + req.body.filetype;
// Writing the image to filesystem
fs.writeFile(uploadPath + filename, data, function (err) {
if ( err ) {
console.log(err);
return res.status(500).json({
error: 'Cannot upload the image. Sorry.'
});
}
console.log('SAVED ON HD');
console.log('FINISHING');
// Sending success response
res.json({
imgURL: imgURL,
type: type
});
});
};
The thing is the file stored in /uploads isn't work. I can't see the image. The base64 image is sent and the file is written to hard disk, but it is not possible to open it.
What's wrong? Any suggestion?
Thanks!
I'm using MEAN.io and i'm trying to upload a base64 encoded image.
Client side, AngularJS:
// Image we're going to send it out
var base64Image = files[i];
var file = {
image: base64Image,
type: type,
filetype: extension,
characterId: character._id
};
var newFile = new MediaSendBase64(file);
newFile.$save(function(image) {
if ( !image ) {
console.log('ERROR IMAGE');
}
else {
console.log('SUCCESS.');
console.log(image);
}
});
Server side, NodeJS, controller:
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
exports.uploadBase64 = function(req, res, next) {
var uploadPath = path.normalize(process.cwd() + '/packages/characters/public/assets/uploads/'),
data = new Buffer(''),
imgURL = undefined, // public URL to show the pic
type = undefined;
// In case the '/uploads' directoy doesn't exist
if( !fs.existsSync(uploadPath) ) {
fs.mkdirSync(uploadPath, 0755);
}
// Decoding the base64 image
var data = new Buffer(req.body.image, 'base64');
// Creating the name for the file --> characterId + type + timestamp + extension
var filename = req.body.characterId + '-' + req.body.type + '-' + new Date().getTime().toString() + '.' + req.body.filetype;
// Writing the image to filesystem
fs.writeFile(uploadPath + filename, data, function (err) {
if ( err ) {
console.log(err);
return res.status(500).json({
error: 'Cannot upload the image. Sorry.'
});
}
console.log('SAVED ON HD');
console.log('FINISHING');
// Sending success response
res.json({
imgURL: imgURL,
type: type
});
});
};
The thing is the file stored in /uploads isn't work. I can't see the image. The base64 image is sent and the file is written to hard disk, but it is not possible to open it.
What's wrong? Any suggestion?
Thanks!
Share Improve this question asked Oct 14, 2014 at 12:03 Rubén JiménezRubén Jiménez 1,8455 gold badges21 silver badges30 bronze badges3 Answers
Reset to default 9It maybe that you are trying to save the file with the metadata. hence making the decoded data from base64 invalid.
Here is what I mean:
data:image/png;base64,iVBORw0KG....
The data:image/png;base64 is just meta and is not encoded using base64 so:
You need to strip that from the sting then decode then save to disk.
I use this handy function:
function decodeBase64Image(dataString) {
var matches = dataString.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/),
response = {};
if (matches.length !== 3) {
return new Error('Invalid input string');
}
response.type = matches[1];
response.data = new Buffer(matches[2], 'base64');
return response;
}
source: NodeJS write base64 image-file
So a snip from how I use it:
var decodedImg = decodeBase64Image(imgB64Data);
var imageBuffer = decodedImg.data;
var type = decodedImg.type;
var extension = mime.extension(type);
var fileName = "image." + extension;
try{
fs.writeFileSync(".tmp/uploads/" + fileName, imageBuffer, 'utf8');
}
catch(err){
console.error(err)
}
Where mime is the great node-mime lib. npm install mime.
if your using express file upload you could do this
routerApi.patch('/upload_gambar', (req, res) => {
var file_data= req.files.upload_file_name.data;
var base64Image = file_data.toString('base64');
}
if your using multer file upload you could do this
routerApi.patch('/upload_gambar', upload.single('upload_file_name'),(req, res) => {
var file_data= req.file.buffer
var base64Image = file_data.toString('base64');
}
Node js base64 to image convert and upload on disk after read and write here code working with me.
var imgBase64 = 'data:image/png;base64,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';
var base64Data = imgBase64.replace(/^data:image\/png;base64,/, "");
fs.writeFile(uploadPath+"/out.png", base64Data, 'base64', function(err) {
console.log(err);
});
fs.readFileSync(base64Data, {encoding: 'base64'});