NodeJs:使用Multer上传多个文件

时间:2017-11-09 10:35:39

标签: node.js forms

我有以下代码:

import { Router } from 'express';
var multer  = require('multer')
var upload = multer({dest: 'uploads/'})

router.post('/file/upload', upload.single('file'), function (req, res, next) {
    return res.status(200).json({
        'name' : 'here'
    });
});

export default router;

我正在使用postman上传文件。

请求类型:POST

标题:Content-Type : multipart/form-data

身体:file : path/filename.jpg

Mutler package link

响应正常,但文件没有上传到上面指定的目录。

1 个答案:

答案 0 :(得分:0)

  

响应正常,但文件没有上传到上面指定的目录。

这是因为在路由处理程序中,您为每个案例返回res.status(200)。您没有检查上传中的错误。 要检查上传中的错误,您可以执行以下操作:

var multer  = require('multer')
var upload = multer({dest: 'uploads/'}).single('file');

router.post('/file/upload', function (req, res, next) {
    upload(req, res, function (err) {
        if (err) {
            throw err;
        }
        return res.status(200).json({
            'name' : 'done'
        });
        console.log(req);
    });
});

您将得到的错误是Error: Multipart: Boundary not found。这是因为您在标题中设置了Content-Type : multipart/form-data,但它缺少边界,用于分隔多部分请求正文的“多个部分”。 从标题中删除内容类型,它会在您发送请求时自动设置。