【问题标题】:Upload image with formidable in node.js failed在 node.js 中上传具有强大功能的图像失败
【发布时间】:2012-12-11 05:20:30
【问题描述】:

我想在node.js中使用formidable with express来实现上传图片功能,

我所做的是:

app.configure(function () {
    app.use(express.static(__dirname + "/media"));
    app.use(express.bodyParser());
})
app.post('/upload', function (req, res) {
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files){
        console.log("log in parse");
        console.log("fields type is " + typeof fields);
        console.log("files type is " + typeof files);
        console.log(files.image);       
        if (err) return res.send('You found error');
    });
})

使用此代码,图片可以成功上传,但form.parse函数似乎没有被调用,因为log没有被调用

为什么?我的代码有什么问题?

【问题讨论】:

    标签: image node.js upload express formidable


    【解决方案1】:

    express 3 bodyParser() 在内部使用 formidable。 所以这应该有效:

    view.jade
        form#fileupload(enctype="multipart/form-data")
            input(type="hidden",name="user[id]", value="1")
            input(type="file",name="photo[file]")
    
    app.js
        app.post('/upload', function (req, res) {
            var userId = req.body.user.id;
            var photo = req.files.photo.file;
        });
    

    【讨论】:

    • 问题是,我想改变上传路径,判断imgae是否已经上传,在进度上做一些,如何实现?
    • @hh54188: app.use(express.bodyParser({uploadDir: __dirname + '/uploads'}));
    • 优秀。谢谢,已经为此工作了一个多小时。
    猜你喜欢
    • 1970-01-01
    • 2018-05-13
    • 2013-05-31
    • 2011-10-16
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2011-11-23
    • 2014-10-06
    相关资源
    最近更新 更多