【问题标题】:Why file upload with Multer doesn't work here?为什么使用 Multer 上传文件在这里不起作用?
【发布时间】:2017-02-07 15:20:53
【问题描述】:

我正在尝试在 Node.js 中使用 Multer 上传图像。当我 console.log(req.files) 它给出未定义的。这里有什么问题?

 <form class="form-horizontal" enctype='multipart/form-data' action="/admin/addNewFood" method="post">

        <div class="form-group">
            <label for="image" class="col-sm-2 control-label">Choose Image</label>
            <div class="col-sm-3">
                 <span class="btn btn-default btn-file btn-xs">
                      Browse <input type="file" name="fileUpload">
                 </span>
            </div>

        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <input type="hidden" name="_csrf" value="{{ csrfToken }}">
                <button type="submit" class="btn btn-default">Add</button>
            </div>
        </div>
    </form>

这是我的路线文件

var express = require('express');
var router = express.Router();
var csrf = require('csurf');
var passport = require('passport');
var Cart = require('../Models/cart');
var multer  = require('multer');
var upload = multer({ dest: '../public/uploads/' });
var bodyParser = require('body-parser');
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));

router.use(upload.single('fileUpload'));
var csrfProtection = csrf();
router.use(csrfProtection);

router.post('/addNewFood', function (req, res, next) {
    console.log('filesssssssss',req.files);

}

});

我不知道这里出了什么问题。请帮忙

【问题讨论】:

    标签: node.js file-upload multer


    【解决方案1】:

    我正在使用这个上传文件,希望这也适用于你。

    var express = require('express');
        var mongoose = require('mongoose');
        var multer = require('multer');
        var fs = require('fs');
        var Grid = require('gridfs-stream');
        var router = express.Router();
        var upload = multer({dest: 'uploads/'});
    
        router.post('/upload', upload.any(), function (req, res) {
            var conn = mongoose.connection;
            var Grid = require('gridfs-stream');
            Grid.mongo = mongoose.mongo;
            var path = req.files[0].path
            var path_name = req.files[0].originalname
            var gfs = Grid(conn.db);
            var writestream = gfs.createWriteStream({
                filename: path_name
            });
            fs.createReadStream(path).pipe(writestream);
            writestream.on('close', function (file) {
                fs.unlink(req.files[0].path, function () {
                    res.json({id: file._id, message: "success"});
                });
            });
    
        })
    

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 2013-05-16
      • 2019-02-10
      • 2017-10-11
      • 1970-01-01
      相关资源
      最近更新 更多