【问题标题】:Sails.js: How to know if the request contains a file to upload?Sails.js:如何知道请求是否包含要上传的文件?
【发布时间】:2015-01-28 05:26:05
【问题描述】:

我在我的一个控制器中有下一个动作,它的功能是上传图像文件或使用视频 url 创建一个新的封面模型,它工作正常但是当请求有一个标题 Content-Type: multipart /form-data 并且不包含该操作在req.file() 中引发超时错误的文件。

upload: function(req, res) {
    res.setTimeout(0);

    function onCreateCover(err, cover) {
        if (err) {
            return res.negotiate(err);
        } else {
            res.status(201);
            return res.json(cover);
        }
    }

    if (/^multipart\/form-data/.test(req.headers['content-type'])) {
        req.file('image').upload({
            maxBytes: 2000000,
            dirname: coverDir
        }, function(err, uploadedFile) {
            if (err) {
                res.serverError(err);
            } else if (uploadedFile.length > 0) {
                Cover.create({
                    title: req.body.title,
                    description: req.body.description,
                    path: uploadedFile[0].fd
                }).exec(onCreateCover);
            }
        });
    } else {
        Cover.create(req.body).exec(onCreateCover);
    }
}

我想知道是否存在检查请求是否真的包含文件的方法或方式

【问题讨论】:

    标签: node.js express sails.js


    【解决方案1】:

    不知道有没有更好的办法,但是我用这个:

    if (req._fileparser.upstreams.length) { /* upload code */ }
    

    【讨论】:

    • 这很好用.. 我不知道为什么它被否决了
    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多