node-formidable解析问题?


node代码:


 var express = require('express')
var app = express();
var formidable = require('formidable');
app.post('/upload', function(req, res) {
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {
        console.log(files);    //打印为空对象
    });
})
app.listen(8888);

前端代码:


 <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file">
        <input type="submit" value="Upload">
    </form>

为什么打印files为空对象?
看了很多例子,几乎试了所有我知道的可能性,不知道哪出错了,求帮助。。。(现在猜测是req对象的问题,不知道是不是因为express框架扩展了req对象,我在原生node里就没问题)

node.js

Lrmax 9 years, 4 months ago

这个问题花了我5、6个小时。。。我尝试了各种可能性。
最后TMD居然是这个问题:

只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。

so, <input type="file" name="upload" multiple="multiple"> 就可以了。

图片描述

空之相簿2 answered 9 years, 4 months ago

Your Answer