FileReader.readAsDataURL上传到express.js
我有以下代码上传到我的Node.js / Express.js后端。
var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function (e) { var result = http.post('/files', e.target.result); result.success(function () { alert('done'): }); }
我的路线如下所示:
app.post('/files', function (req, res) { var cws = fs.createWriteStream(__dirname + '/media/file'); req.pipe(cws); res.send('success'); });
当我打开/媒体/文件与图像应用程序时,我得到一个警告,它无法读取它。 当我用文本编辑器打开图像文件时,我在里面看到了base64编码的string。 在写入桌面之前,是否需要先转换string?
问题是DataURL被元数据所占据。 在创buildbase64缓冲区之前,首先需要删除该部分。
var data_url = req.body.file; var matches = data_url.match(/^data:.+\/(.+);base64,(.*)$/); var ext = matches[1]; var base64_data = matches[2]; var buffer = new Buffer(base64_data, 'base64'); fs.writeFile(__dirname + '/media/file', buffer, function (err) { res.send('success'); });
从这个问题得到了最多的代码。
- 禁用关键错误的快速error handling
- 使用PhantomJS处理多个用户请求到多个远程Web表单
- Angularjs CORS与Node,Express,Oauth2和Passport有关
- 将asynchronous函数传递给Node.js Express.js路由器
- Express JS – 使用路由和中间件的匿名函数
- npm install express不能正常工作
- nodejs express – 大块在res.on('data')中logging两次
- 如何在Express中启用HTML5模式而不破坏NodeMailer?
- Express Mongoose Model.find()返回undefined