【问题标题】:How to upload a file to KeystoneJS server如何将文件上传到 KeystoneJS 服务器
【发布时间】:2019-04-30 06:49:12
【问题描述】:

我正在尝试将 csv 文件上传到 KeystoneJS(我想解析行并将记录添加到我的 MongoDB),但这比我还难。

以下使用“强大”包(最新,预装 Keystone 4)的一些示例,但似乎该文件从未到达我的路线:首先,“on progress”被触发,给出预期的大小,但从未发生,最后是“oa aborted" 事件被触发。

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

KeystoneJS file upload not working in my app

尚未解决(就像我发现的任何其他类似请求一样)。

有人可以帮忙吗?

路由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");
};

【问题讨论】:

    标签: file-upload keystonejs formidable


    【解决方案1】:

    与往常一样,经过一整天的努力,您在论坛上发布问题后立即找到了答案!

    所以它比我更容易:不需要使用任何包,在对路由的 POST 调用中,我刚刚找到了可以在 req.files 中使用的文件!我可以在req.files.upload.path 访问完整路径。

    非常简单!

    【讨论】:

      猜你喜欢
      • 2017-04-25
      • 2011-09-25
      • 2020-03-17
      • 2014-10-17
      • 1970-01-01
      • 2022-11-10
      • 2020-01-30
      • 2019-05-24
      • 2010-12-03
      相关资源
      最近更新 更多