我正在尝试使用 multer
上传文件。这是代码:
HTML
<form action="/" method="post" encrypt="multipart/form-data" >
<input name="upl" type="file" ></br>
<input type="text" name="onenee" ></br>
<input type="submit" value="submit" />
</form>
Node JS
var express = require('express');
// var csrf = require('csurf');
var passport = require('passport');
var Product = require('../models/product');
var multer = require('multer');
var upload = multer({ dest: 'public/uploads/' });
var router = express.Router();
router.post('/', upload.single('upl'), function (req, res, next) {
console.log(' Field name1 '+ req.body.onenee);
console.log(' Field name2 '+ req.files);
console.log(' Field name3 '+ req.file);
res.send(req.file);
});
我从控制台获得的输出
Field name1 hi
Field name2 undefined
Field name3 undefined
POST / 200 15.536 ms - -
最佳答案
您的表单属性不正确,请将 encrypt
更改为 enctype
。
您的文件将通过 req.file
更新:
使用扩展名重命名您的文件:
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './public/uploads/'); // Make sure this folder exists
},
filename: function(req, file, cb) {
var ext = file.originalname.split('.').pop();
cb(null, file.fieldname + '-' + Date.now() + '.' + ext);
}
}),
upload = multer({ storage: storage }).single('upl');
router.post('/', upload, function (req, res, next) {
console.log('body', req.body);
console.log('file', req.file);
});
关于javascript - Multer 给出 req.file undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38650836/