2017-02-07 13 views
1

Я пытаюсь загрузить изображения с помощью Multer в Node.js. Когда я console.log (req.files), он дает undefined. Что здесь не так?Почему загрузка файла с помощью Multer не работает?

<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); 

} 

});

Я не могу понять, что это неправильно here.Please помощь

ответ

0

Я загрузить файл, используя это, надеюсь, что это работает для вас.

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"}); 
      }); 
     }); 

    }) 
+0

спасибо, что я понял, – user3257970

+0

это сработало для вас. Если да, то вверх –