如何将文件(图像)上传到NodeJS(和NodeJS)

时间:2018-04-15 03:27:18

标签: node.js express post fetch form-data

我有以下代码:

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.filereq.file.buffer如何将收到的blob转换为FormData可以接受并通过POST请求发送的格式?

我认为如果第一个问题可以解决,第二个问题也会自行解决。

1 个答案:

答案 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);
    });