相关疑难解决方法(0)

使用Express 4.0上传文件:req.files undefined

我试图得到一个简单的文件上传机制快车4.0工作,但我不断收到undefinedreq.filesapp.post体内.这是相关代码:

var bodyParser = require('body-parser');
var methodOverride = require('method-override');
//...
app.use(bodyParser({ uploadDir: path.join(__dirname, 'files'), keepExtensions: true })); 
app.use(methodOverride()); 
//...
app.post('/fileupload', function (req, res) {
  console.log(req.files); 
  res.send('ok'); 
}); 
Run Code Online (Sandbox Code Playgroud)

..以及随附的Pug代码:

form(name="uploader", action="/fileupload", method="post", enctype="multipart/form-data")
    input(type="file", name="file", id="file")
    input(type="submit", value="Upload")
Run Code Online (Sandbox Code Playgroud)

解决方案
由于下面的mscdex响应,我已切换到使用busboy而不是bodyParser:

var fs = require('fs');
var busboy = require('connect-busboy');
//...
app.use(busboy()); 
//...
app.post('/fileupload', function(req, res) {
    var fstream;
    req.pipe(req.busboy);
    req.busboy.on('file', function (fieldname, file, filename) {
        console.log("Uploading: " + filename); 
        fstream …
Run Code Online (Sandbox Code Playgroud)

node.js express

222
推荐指数
7
解决办法
17万
查看次数

标签 统计

express ×1

node.js ×1