2017-01-22 50 views
0

我没有收到任何错误,但目录中没有文件,所以我完全失去了在哪里寻找错误。我非常感谢提供的任何帮助。尝试使用Mulder从客户端(Angular)将文件保存到服务器(Express)

HTML:

 <div class="form-group"> 
      <label for="file">File</label> 
      <input type="file" name="file" onchange="angular.element(this).scope().uploadFile('front',this.files)"/> 
      <label for="file">File2</label> 
      <input type="file" name="file" onchange="angular.element(this).scope().uploadFile('back',this.files)"/> 
     </div> 

角:

.controller('UploadCtrl', function ($scope, close, Pics) { 
    var fd = new FormData(); 
    $scope.uploadFile = function(fileType, files){ 
     fd.append(fileType , files) 
    } 

    $scope.con = function() { 
     Pics.sendPhotos(fd) 
    } 
}) 

出厂文件:

.factory('Pics', function ($http) { 
    var sendPhotos = function (files) { 
     return $http({ 
     method: 'POST', 
     url: '/upload/photos', 
     headers: { 
      'Content-Type': '' 
     }, 
     data: files, 
     transformRequest : angular.identity 
     }).then(function (resp) { 
     console.log('done') 
     }) 
    } 

    return ({ 
     sendPhotos 
    }) 
    }) 

服务器:

var express = require('express'); 
var morgan = require('morgan'); 
var bodyParser = require('body-parser'); 
var path = require('path'); 
var multer = require('multer'); 


var app = express(); 


var storage = multer.diskStorage({ 
    destination: function (req, file, cb){ 
    cb(null, '/Users/pheon/Desktop/Smartfolio-1/server/uploads') 
    }, 
    filename: function (req, file, cb){ 
    cb(null, file.fieldname) 
    } 
}) 

var upload = multer({storage: storage}); 

var middle = upload.fields([{ 
    name: 'front', maxcount: 1 
}, {name: 'back', maxcount: 1}]); 

app.use(middle); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(morgan('dev')); 

app.use(express.static(path.join(__dirname, '/../client'))); 

require('./routes.js')(app, express); 
var port = process.env.PORT || 8000; 

app.listen(port, function() { 
    console.log('Listening on port ', port); 
}) 


module.exports = app; 

条路线

var uController = require('./controllers/userController.js'); 
var iController = require('./controllers/imgController.js'); 
var multer = require('./config/multer') 

module.exports = function (app, express) { 
    app.post('/signin', uController.signin); 
    app.post('/register', uController.register); 
    app.get('/photos', iController.fetch); 
    app.post('/upload/photos', iController.upload); 
} 

imgController(INPROGRESS):

var db = require('./../config/db'); 
module.exports = { 
    fetch: function (req, res) { 
    console.log('here') 
    }, 
    upload: function (req, res) { 
    console.log(req.body)//shows up empty 
    } 
}; 

回答

0

我找到了解决办法。在工厂文件中,代替 content-type : '' 应该说content-type: undefined

相关问题