新手请教一个base64编码上传的问题,请各位大侠帮忙指点一下,多谢。
背景:
提供上传接口给终端的JS调用,因为JS没办法直接上传,所以是把文件转成base64编码传给我,我再调文件服务器上传
问题:
我现在是拿到base64的字符串以后转成buffer保存到本地临时文件,再读取文件上传
因为我没办法把base64的编码直接转成readStream...
这个方法感觉很挫...请教有什么好办法没?
以下是我的代码:
app.post('/uploadBase64', function(req, res) {
var base64Data = req.body.base64Data;
var fileName = req.body.fileName;
var tempFilePath = path.join(__dirname, fileName);
// 用request上传文件
var r = request.post('http://文件服务器', function(error, response, body) {
// 上传完以后删除临时文件
fs.unlink(tempFilePath);
res.send({
media_id: JSON.parse(body).media_id
});
});
// base64保存为临时文件
fs.writeFileSync(tempFilePath, new Buffer(base64Data, 'base64'));
var form = r.form();
form.append('media', fs.createReadStream(tempFilePath));
});