将图像从客户端上传到NodeJS服务器并将其保存在服务器上?

时间:2018-04-28 07:50:55

标签: javascript node.js

我如何从客户端部分上传图像,并通过向服务器(NodeJS)发出HTTP请求(POST)并将其内部保存在服务器上来发送它。

无论是Jquery使用还是XMLHttpRequest使用甚至是表单使用,我偶然发现同样的问题,无法在服务器端获取图像,因此无法在内部存储它。

代码我为客户端尝试过:

let img = document.createElement("img");
img.src = "./public/assets/img.png";
img.addEventListener("load", (e) => {
    addParkingSource(img);
});

function addParkingSource(image) {
    let blobFile = image;
    let formData = new FormData();
    formData.append("fileToUpload", blobFile);

    $.ajax({
        url: "http://localhost:8000/post-image",
        type: "POST",
        data: formData,
        processData: false,
        contentType: false,
        success: function(response) {},
        error: function(jqXHR, textStatus, errorMessage) {
            console.log(errorMessage); // Optional
        }
    });

}

服务器端,我无法读取它,每当我尝试读取req(请求)的数据属性时,它给出空对象,但Content-Length指向一个数字> 0,表示图像已成功发送。

app.post("/post-image", function(req, res) {
    console.log(req.body);
});

注意:我现在对cors没有任何问题。

我做错了什么以及如何正确实施呢?

1 个答案:

答案 0 :(得分:1)

我建议您使用multer npm package进行文件上传任务。

https://github.com/expressjs/multer