在哪个格式发送文件将其保存在gridfs?

Hy每一个,

请,我正在研究一个项目使用nodeJS,我想知道,我的节点客户端必须发送文件到服务器(是在Base64格式或其他?)的格式。

我的客户是:

//client.js $('#file').on('change', function(e){ encode64(this); }); function encode64(input) { if (input.files){ chap.emit('test', { "test" : input.files[0] }); var FR= new FileReader(); FR.readAsDataURL(input.files[0]); FR.onload = function(e) { chap.emit('test', { "test" : e.target.result } ); } } } 

我的服务器端是:

  socket.on('test', function(e){ var gs = new gridStore(db, e.test,"w"); gs.writeFile(new Buffer(e.test,"base64"), function(err,calb){ if (!err) console.log('bien passe'); else console.log('erreur'); }); }); 

但是这不起作用,我得到这个错误:

 TypeError: Bad argument at Object.fs.fstat (fs.js:667:11) 

任何人都可以帮助我?

通常这是你如何存储到gridFs。 我用它来存储文件。 希望它的作品。

  fs = require('fs'), var gfs = require('gridfs-stream'); var form = new multiparty.Form(); form.parse(req, function (err, fields, files) { var file = files.file[0]; var filename = file.originalFilename; //filename var contentType = file.headers['content-type']; console.log(files) var tmpPath = file.path ;// temporary path var writestream = gfs.createWriteStream({filename: fileName}); // open a stream to the temporary file created by Express... fs.createReadStream(tmpPath) // and pipe it to gfs .pipe(writestream); writestream.on('close', function (file) { // do something with `file` res.send(value); }); })