javascript - 在 Node JS 中使用 multer 上传图像和文本

标签 javascript node.js express multer

我在 NodeJS 应用程序中使用 body-parser、express 和 multer。 我需要在注册表单中上传图像和一些文本字段。我正在使用 multer 为此,我尝试了与建议的完全相同的操作 here

但是我在 req.body 中得到空对象。 正在目标文件夹中创建文件,但 req.files.forEach 方法记录空结果。

这是我的代码:

Html前端代码

         <form id="form" enctype="multipart/form-data" action="/profile"  method="post" >

           <label>Name</label>
           <input type="text" placeholder=" Name" name="name" id="name" class="form-control">

           <label>Logo</label>
           <input type="file" placeholder="Logo" name="logo" id="logo" class="form-control">

           <button id="addform" type="submit" class="btn btn-primary">Add Profile</button>


        </form>

服务器端代码:

    app.post('/profile', function(req, res) {

      var storage = multer.diskStorage({
              destination: __dirname+'/file/uploads/'
          });
     var upload = multer({ storage : storage}).any();

          upload(req,res,function(err) {
              if(err) {
                  console.log(err);
                  return res.end("Error uploading file.");
              } else {
                 console.log(req.body);
                 console.log(req.files);
                 req.files.forEach( function(f) {
                   console.log(f);
                   // and move file to final destination...  
                 });
                res.end("File has been uploaded");
              }
              });

    });

Node 中的日志输出:

{}
[]

最佳答案

尝试将 Multer 移到 req 主体之外,并尝试包含文件名参数。我修改了你的代码。

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, __dirname+'/file/uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

//passing multer as middleware
app.post('/profile',upload.any(), function(req, res) {
   console.log(req.body)


 });

关于javascript - 在 Node JS 中使用 multer 上传图像和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46502915/

相关文章:

javascript - 从二维数组重新创建一个数组

javascript - 使用 Javascript 显示和隐藏带有下一个上一个按钮的图像

javascript - 如何解构一个 prop

javascript - 为什么我会收到 Uncaught SyntaxError : Unexpected token ILLEGAL

mongodb - 用 Mongoose 保存在 mongoDb 中,保存了意外的元素

Node.js、socket.io https 连接

node.js - 使用 NodeJS 和 Mongoose 查询嵌入式文档

node.js - Heroku 503 服务不可用

javascript - 我如何在 Express 4.x 中将路由 Controller 链接在一起?

javascript - 使用 Express 和 Angular 将 JSON 数据发送到另一台服务器 (PayU)