【问题标题】:Upload an image from client to the NodeJS server and save it internaly on the server?将图像从客户端上传到 Node JS 服务器并在服务器内部保存?
【发布时间】:2018-04-28 07:50:55
【问题描述】:

我如何能够从客户端部分上传图像,并通过向服务器(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(request) 的 data 属性时,它都会给出空对象,但 Content-Length 指向的数字> 0,这意味着图像已发送成功。

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

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

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

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

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

    https://github.com/expressjs/multer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      相关资源
      最近更新 更多