gpt4 book ai didi

javascript - FileReader.readAsDataURL 上传到 express.js

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:51 24 4
gpt4 key购买 nike

我有以下代码要上传到我的 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');
});

当我用图像应用程序打开/media/file 时,我收到一条警告,提示它无法读取它。当我用文本编辑器打开图像文件时,我在里面看到了 base64 编码的字符串。在写入桌面之前是否需要先转换字符串?

最佳答案

问题是 DataURL 前面有元数据。在创建 base64 缓冲区之前,您首先需要删除该部分。

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');
});

大部分代码来自 question .

关于javascript - FileReader.readAsDataURL 上传到 express.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com