File upload 如何将文件上载到KeystoneJS服务器

File upload 如何将文件上载到KeystoneJS服务器,file-upload,keystonejs,formidable,File Upload,Keystonejs,Formidable,我正在尝试将csv文件上载到KeystoneJS,我想解析行并将记录添加到我的MongoDB中,但这比我想象的要难 下面是一些使用Keystone 4预装的强大软件包最新版本的示例,但该文件似乎从未到达我的路径:首先,根据预期大小触发on progress,但从未发生,最后触发oa中止事件 我在本地工作,上传700kb的文件,所以没有超时问题。这似乎与此有关: 这并没有像我发现的任何其他类似的请求一样得到解决 有人能帮忙吗 路由js文件: exports = module.exports = f

我正在尝试将csv文件上载到KeystoneJS,我想解析行并将记录添加到我的MongoDB中,但这比我想象的要难

下面是一些使用Keystone 4预装的强大软件包最新版本的示例,但该文件似乎从未到达我的路径:首先,根据预期大小触发on progress,但从未发生,最后触发oa中止事件

我在本地工作,上传700kb的文件,所以没有超时问题。这似乎与此有关:

这并没有像我发现的任何其他类似的请求一样得到解决

有人能帮忙吗

路由js文件:

exports = module.exports = function(req, res) {
    var view = new keystone.View(req, res);

    if (req.method.toLowerCase() == "post") {
        var form = new formidable.IncomingForm();
        form.type = "multipart"

        /*fs.mkdir("tmp", function(err){
            console.log(err)
        });*/

        form.uploadDir = "tmp";

        form.on("file", function(name, file) {
            console.log(name);
        });
        form.on("error", function(err) {
            console.log(err); // Fires after on abort
        });
        form.on("aborted", function() {
                   // This fires after some time
        });
        form.on("progress", function(bytesReceived, bytesExpected) {
            console.log("PROGRESS"); // this fires once
            console.log(bytesReceived); // 0 here
            console.log(bytesExpected); // actual size here
        });

        form.parse(req, function(err, fields, files) {
            if (err) return; // this fires on error
            var oldpath = files.filetoupload.path;
            var newpath = "../../csv/" + files.filetoupload.name;
            fs.rename(oldpath, newpath, function(err) {
                if (err) throw err;
            });
        });
    }

    // Render the view
    else view.render("importPayments");
};

和往常一样,经过一整天的努力,你在论坛上发布了一个问题之后,恰好找到了答案

所以这比我想象的要容易得多:不需要使用任何包,在对路由的POST调用中,我刚刚发现该文件已准备好用于req.files!我可以访问req.files.upload.path的完整路径

很简单