javascript - Multer 给出 req.file undefined

标签 javascript jquery html node.js multer

我正在尝试使用 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/

相关文章:

javascript - 来自内容脚本的 Chrome 扩展响应未定义

javascript - 使用 javascript Date() 函数获取当前月份的错误

javascript - 如果选中,获取表行的 Id?

html - 将 CSS 的边距归零是一个好习惯吗?

html - 链接在 IE6 中消失,在它之前添加链接时重新出现

javascript - 如何通过从谷歌电子表格检索数据来在谷歌地图中显示多个位置?

javascript - js中按位运算符不一致?

javascript - 如何在angularjs中调用服务

javascript - 如何通过扩展在 Chrome 中点击时将用户重定向到新链接?

javascript - WooCommerce:根据所选的运输方式显示或隐藏结账字段和部分