需要使用以base64编码的图像向api发出请求,该请求是一个put,我正在尝试使用原始格式在正文部分中进行制作并添加即这个json:
{
"picture": {
"name": "/Users/Cokeina/Desktop/imagenes/default_avatar.png",
"content_type": "image/png",
"file": "base64string"
}
}
但似乎这不起作用,正确的方法是什么?
您可以找到在线base64图像编码器。他们将图像编码为字符串。
POSTMAN 中 JSON 格式的原始正文示例:
"profile": {
"first_name": "John",
"last_name": "Dow",
"photo": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII="
}
我认为,“name”和“content_type”在 JSON 中是显而易见的。
我就是这样做的
// JSON body in Postman.
{
"first_name": "John",
"last_name": "Doe",
"photo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJgAAASsCAYAAADDvzILAAAZy3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHja7ZpZkhw5kkT/cYo5AvblOIZNpG8wx5+niCSHZBWlq7v6Z0SGyczIjMUdDlPTBXB3/vsf1/0X/2rx2eXSeh21ev7lkUc0fun+88/ez+Dz+/n+jf7+0t8/Pe9sfb0QeSrxmD4v9Pp5DN+e//rAt8dg/FZ+OFBfXy/Mn18Yn8P72H85..."
}
然后在服务器上,我像这样存储图像
app.use(express.json({ limit: '50mb' })); // To allow for larger payloads.
app.post("/selfie", (req, res) => {
console.log('req.body:', req.body);
var base64Data = req.body.photo.replace(/^data:image\/png;base64,/, "");
require("fs").writeFile("out.png", base64Data, 'base64', function (err) {
console.log(err);
});
res.end();
});