13

我正在尝试在 Express.js 4 中构建一个上传图像的 Node.js 应用程序。我决定使用该multer模块,但无法通过req.files. 这是我正在使用的代码。我将其限制在我认为相关的那些部分。

玉码:

form(method="POST", action="createPost", enctype="multipart/form-data")
        input(type="file", name="photo")
        br
        input(type="submit" value="upload")

在路线/admin.js 中:

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

router.post('/createPost', upload.single('photo'), function(req, res, next) {
    console.log('files:', req.files);
    console.log('body:', req.body);
    // more code
}

输出:

files: undefined
body: {}

该文件存储在uploads文件夹中,但我无法在req.files. 谁能帮我?

4

1 回答 1

16

使用时upload.single(),根据 multer 文档,生成的文件应该在 中req.file,而不是req.files. 在这里查看他们文档中的示例。

app.post('/profile', upload.single('avatar'), function (req, res, next) {
  // req.file is the `avatar` file
  // req.body will hold the text fields, if there were any
})

而且,这是实际的文档upload.single()

.single(字段名)

接受名称为 fieldname 的单个文件。单个文件将存储在 req.file 中。

于 2015-08-14T00:27:17.500 回答