Multer没有在快递应用程序中上传图像

时间:2017-03-25 13:33:06

标签: node.js express multipartform-data multer

我已经编写了这个简单的应用程序来测试multer将文件上传到我的服务器。我正在尝试使用邮递员测试这个,我选择了form-data选项,为我的图像添加了一个键,并使用旁边的按钮上传了图像。 API被正确调用,但图像无法上传。

var express = require("express");
var app = express();
var multer = require('multer');

var upload = multer({
  dest: 'images/',
});

app.post('/uploadchq', upload.any(), function(req, res, next) {
  console.dir("file", req.file);
  console.dir("files", req.files);
  console.log("body", req.body);
  next();
  res.sendStatus(200);
});

app.listen(9999);
console.log("listening to port", 9999);

Multer正在创建我在dest字段中指定的图片目录,但是req.filereq.filesreq.body所有字段都是空的。我尝试使用upload.single代替any,并使用键名作为参数,但它仍然不起作用。有什么问题?

编辑:回复Gaurav的评论。这是邮递员的屏幕截图。我已将密钥名称从chqImg更改为fileScreenshot of postman

2 个答案:

答案 0 :(得分:1)

试试这个

var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        var dest = 'images/';
        cb(null, dest);
    }
})

var upload = multer({
    storage: storage
});

app.post('/uploadchq', upload.fields([{
    name: 'file'
}]), function(req, res, next) {
    console.log("files", req.files.file);
    console.log("body", req.body);
});

答案 1 :(得分:0)

我弄清楚出了什么问题。我刚刚取消选中邮递员中的标题字段,该字段将Content-type设置为multipart/form-data。但是,我无法理解它为什么不能使用它。