【问题标题】:Empty req.files with connect-multiparty and body-parser使用 connect-multiparty 和 body-parser 清空 req.files
【发布时间】:2017-04-27 16:14:46
【问题描述】:

我正在尝试在我的 api 上使用connect-multiparty上传文件,但我无法使其正常工作。

这是我的代码(一个示例,因为我的 api 有很多工作路线):

var express             = require('express');
var bodyParser          = require('body-parser');
var multipart           = require('connect-multiparty');
var app                 = express();
var multipartMiddleware = multipart({ uploadDir: './imagesPath' });

// Define middleware
app.use(bodyParser.urlencoded({ extended: true })); // Support encoded bodies
app.use(bodyParser.json());                         // Support json encoded bodies

var router = express.Router();                      // Get an instance of the express Router

router.post('/testFileUpload', multipartMiddleware, function(req, res) {
    console.log(req.body, req.files);

    // Some other code
});

当我尝试上传文件时,req.bodyreq.files 都是空的 {}

我知道Body-Parser 不再支持multipart/form-data,所以我试图找到一种方法将它与另一个包一起使用,但到目前为止没有成功。

我试过busboyconnect-busboymulterformidableexpress-formidableexpress-fileupload,但每次req.files都是undefined,所以我觉得我做了一些通过将req.files 留空,以connect-multiparty 取得进展。

我见过一些有类似问题的主题,例如 this onethis onethis one,但不幸的是,这些主题都没有帮助到我。

客户端我使用Advanced REST ClientPostman

任何想法我做错了什么?

【问题讨论】:

    标签: node.js express multipartform-data body-parser


    【解决方案1】:

    对于遇到此问题的人,我发现删除 Postman 上值为“application/javascript”的 Content-Type 标头对我有用。我只是一直没有注意到,而我尝试了与 OP 相同的不同软件包。

    【讨论】:

      【解决方案2】:

      将 enctype="multipart/form-data" 放在 html 上的标签表单中

      【讨论】:

        猜你喜欢
        • 2017-02-27
        • 2016-10-14
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-31
        • 1970-01-01
        相关资源
        最近更新 更多