首页 > 解决方案 > 如何在通过 AJAX 从 multer 上传多个文件时读取节点端的每个文件数据?

问题描述

下面我选择了3个文件。在提交文件成功上传到目的地。但我也想在 nodejs 中读取服务器端的所有 3 个文件属性,如文件名、路径等。怎么做? 在此处输入图像描述

我试图通过在控制台中打印它来在 req.body 和 req.query 中找到它,但我将所有内容都作为一个对象:[object Object]

下面是我的节点端代码:

 router.post('/api/upload/:cid',function(req,res){
      // console.log("REQ",req); //file is there in the body
      console.log("yes it came under api");
      console.log("req.body = "+ req.body);
      console.log("req.query = "+ req.query);
      console.log("req.data = "+ req.data);

  upload2(req,res,function(err) {
      if(err) {
          return res.end("Error uploading file.");
      }
      else
      {
      console.log("File is uploaded");
      res.redirect('/taskswriter');

  }
});
})

这是 AJAX 代码:

  $.ajax({
        type: "POST",
        url: $(this).attr('action'),
        data: formData,
        processData: false,
        contentType: false,
        success: function(r){
            console.log("result",r)
        },
        error: function (e) {
            console.log("some error", e);
        }
    });

标签: node.jsajaxuploadmulter

解决方案


如果您在服务器端使用 multer,要获取文件数据(文件名、路径等),您需要从以下位置获取它:

// If you are uploading multiples files
console.log(request.files);

// If you are uploading one file
console.log(request.file);

因此,您可能可以通过以下方式获得它:

router.post('/api/upload/:cid',function(req,res){
   console.log("req.files", req.files);

推荐阅读