How to upload file using multer or body-parser

后端 未结 4 1938
感动是毒
感动是毒 2021-01-17 12:34

I am a NodeJS beginner, following along a book \"Web Development with MongoDB and NodeJS\". I am stuck at its chapter 6 with \'multer\'. When I use multer for file uploads t

4条回答
  •  天命终不由人
    2021-01-17 12:57

    Here is the basic code for file upload in MEAN please check

    HTML


    CLIENT SIDE CODE

    app.controller ('myctrl',function($scope,$http){
    
      $scope.upload = function () {
                var file = angular.element(document.querySelector('#file')).prop("files")[0];
                    $scope.files = [];
                    $scope.files.push(file);
                    $http({
                        method: 'POST',
                        url: '/users/upload',
                        headers: { 'Content-Type': undefined },
                        transformRequest: function (data) {
                            var formData = new FormData();
                            formData.append('model', angular.toJson(data.model));
                            formData.append('file', data.files[0]);
                            return formData;
                        },
                        data: { model: { title: 'hello'}, files: $scope.files }
    
                    }).success(function (res) {
                        console.log(res)
                    });
            }
    
    
    });
    

    SERVER SIDE CODE

    var multer  = require('multer');
    var mkdirp = require('mkdirp');
    
    var storage = multer.diskStorage({
      destination: function (req, file, cb) {
        //var code = JSON.parse(req.body.model).empCode;
        var dest = 'public/uploads/';
        mkdirp(dest, function (err) {
            if (err) cb(err, dest);
            else cb(null, dest);
        });
      },
      filename: function (req, file, cb) {
        cb(null, Date.now()+'-'+file.originalname);
      }
    });
    
    var upload = multer({ storage: storage });
    
    router.post('/upload', upload.any(), function(req , res){
        console.log(req.body);
        res.send(req.files);
    });
    

提交回复
热议问题