我一直试图让一个快速的node.js api工作,但我遇到了一些问题,我希望有人可以提供帮助。
我尝试做的事情:我尝试将base64编码的图像数据URI传递给我的node.js并将文件保存到我的服务器。我相信我几乎让它工作,但由于某种原因,图像被破坏了。当我只是在对dataURI进行硬编码时尝试运行脚本时,保存的图像非常完美。但是,当我使用GET请求时,保存的文件已损坏,我无法打开它。
这是我到目前为止所做的:
const express = require('express');
const fs = require('fs');
const app = express();
app.listen(3000, () => { console.log
('Running on port 3000...');
});
app.get('/api/users', function(req, res) {
let base64String = req.param('datauri');
let base64Image = base64String.split(';base64,').pop();
fs.writeFile('image.png', base64Image, {encoding: 'base64'}, function(err) {
console.log('File created');
});
res.send(base64Image);
});
非常感谢任何帮助!
答案 0 :(得分:0)
您需要对base64字符串进行url解码,以将特殊字符替换回原始格式。 I.E.将+
交换回空格
您应该可以使用decodeURIComponent()
var base_64 = decodeURIComponent(base_64_string);