我有一个Electron应用程序,它使用node-ftp将已删除的文件上传到预定义的服务器.上传就像一个魅力,但尽管阅读了一些建议我无法弄清楚如何获得进度条的实际进度信息.我的上传代码到目前为止:
var ftp = new Client(); let uploadfile = fs.createReadStream(f.path); let newname = uuid(); //some function I use for renaming ftp.on('ready', function () { ftp.put(uploadfile, newname, function (err) { if (err) throw err; ftp.end(); }); }); c.connect({user: 'test', password: 'test'});
我总是偶然发现监控"数据"事件,但无法找到访问它的方式或位置(正如您所看到的,我对JavaScript很新).
得到它了.我在流中找到了完成百分比的答案
我的代码改为
var ftp = new Client(); let uploadfile = fs.createReadStream(f.path); let newname = uuid(); //some function I use for renaming ftp.on('ready', function() { uploadfile.on('data', function(buffer) { var segmentLength = buffer.length; uploadedSize += segmentLength; console.log("Progress:\t" + ((uploadedSize/f.size*100).toFixed(2) + "%")); }); ftp.put(uploadfile, newname, function(err) { if (err) throw err; ftp.end(); }); }); c.connect({user: 'test', password: 'test'});
我在控制台中上传了百分比.从这里开始,图形输出只是一小步.