【发布时间】: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