2014-12-05 144 views
1

我在获取带有节点的服务器端文件时遇到了问题。用nodejs,express和angular使用dropzone进行文件上传

具体地访问请求数据,(req.files或req.body)

这里时有一些片断,如果有人有任何意见。

HTML

<form action="/upload" class="dropzone" drop-zone id="file-dropzone"></form> 

角控制器

'use strict'; 

angular.module('app') 
    .controller('SampleCtrl', function ($scope, $http) { 


    }) 

    .directive('dropZone', function() { 
    return function(scope, element, attrs) { 
    $(element).dropzone({ 
     url: "/upload", 
     maxFilesize: 100, 
     maxThumbnailFilesize: 5 
    }); 
    } 
}); 

节点路由器

'use strict'; 

var express = require('express'); 
var controller = require('./import.controller'); 

var router = express.Router(); 

router.post('/', controller.import); 

module.exports = router; 

节点控制器

'use strict'; 

var express = require('express'), 
    _ = require('lodash'), 
    fs = require('fs'), 
    path = require('path'), 
    multer = require('multer'), 
    bodyParser = require('body-parser'), 
    app = express(); 

app.use(bodyParser.urlencoded({extended: true})); 

exports.import = function(req, res) { 
    console.log(req.files); // responds with 'undefined' 
    console.log(req.body); // responds with {} 
}; 

在此先感谢

+0

您正在将** multer **中间件添加到控制器中的“应用程序”。我认为它没有达到你期望的效果,因为'exports.import'没有连接到'app'。 – Jordonias 2014-12-05 20:36:41

+0

嗨,我有完全相同的问题,你设法使它工作? – Egidi 2016-02-15 19:41:09

回答

-1

你有实际使用文件上传中间件获得快递解包请求的一部分。从multer文档:

var express = require('express') 
var multer = require('multer') 

var app = express() 
app.use(multer({ dest: './uploads/'})); 

console.log(req.body) 
console.log(req.files) 
+0

感谢您的回复。不幸的是增加了app.use(multer({dest:'./uploads/'}));仍然给我同样的回应。 – user1554903 2014-12-05 18:42:57

相关问题