【问题标题】:File upload with nodejs, express and angular using dropzone使用 nodejs 上传文件,使用 dropzone 快速和角度
【发布时间】:2014-12-06 03:24:48
【问题描述】:

我在使用节点获取文件识别服务器端时遇到问题。

特别是在访问请求数据时,(req.files 或 req.body)

如果有人有任何建议,这里有一些 sn-ps。

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 {}
};

提前致谢

【问题讨论】:

  • 您正在将 multer 中间件添加到控制器中的app。我不认为它正在做你期望的事情,因为exports.importapp 没有任何联系。
  • 您好,我也遇到了同样的问题,请问您解决了吗?

标签: javascript angularjs node.js express


【解决方案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)

【讨论】:

  • 感谢您的回复。不幸的是添加 app.use(multer({ dest: './uploads/'}));仍然给我同样的反应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 2016-09-14
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多