我有以下代码:
const formData = new FormData();
formData.append("filedata", myImage);
fetch("/extension/api/uploadtofb", {
method: "POST",
body: formData
})
如果myImage
是图像的base64字符串表示(dataURL),multer
认为它不是文件而是文本。因此,它位于req.body
,而不是req.file
。 如何将此图像上传到我的NodeJS(Express)服务器,以便将其识别并作为图像阅读?(不需要使用multer
,我只是按照说明操作到目前为止我找到了。)
我能够通过将base64字符串转换为blob
并将其作为blob
发送来解决此问题。现在可以在req.file
中正确找到图像。但我需要从NodeJS(Express)服务器发送带有此图像的发布请求。 FormData不接受附加req.file
或req.file.buffer
。 如何将收到的blob转换为FormData可以接受并通过POST请求发送的格式?
我认为如果第一个问题可以解决,第二个问题也会自行解决。
答案 0 :(得分:0)
您可以直接上传base64图像数据
var base64Data = JSON.parse(res.body).data;
var filename = "test.png";
var base64_attachement = base64Data.replace(/-/g, '+').replace(/_/g, '/').replace(/ /g, '+');
filepath = (__dirname + './../../public/temp');
if (!fs.existsSync(filepath)) {
fs.mkdirSync(filepath, 0744); //Set Folder Permission
}
filepath = filepath + '/' + _filename;
//TempFilePath
require("fs").writeFile(filepath, base64_attachement, 'base64', function (err) {
console.log(err);
return cb(filepath);
});