node ftp 模块 如何把本地多个文件夹或者文件上传到服务器

node ftp 模块 如何把本地多个文件夹或者文件通过FTP上传到服务器

阅读 9.6k
2 个回答

//先利用fs模块获取所有文件

var walk = function (dir, done) {
    var results = [];
    fs.readdir(dir, function (err, list) {
        if (err) return done(err);
        var pending = list.length;
        if (!pending) return done(null, results);
        list.forEach(function (file) {
            file = path.resolve(dir, file);
            fs.stat(file, function (err, stat) {
                if (stat && stat.isDirectory()) {
                    walk(file, function (err, res) {
                        results = results.concat(res);
                        if (!--pending) done(null, results);
                    });
                } else {
                    results.push(file);
                    if (!--pending) done(null, results);
                }
            });
        });
    });
};

其次利用node-ftp 上传

c.on('ready', function () {
   
        var tpath = path.resolve(__dirname, '..') + "/yueyang_vue_wx/dist";
        walk(tpath, function (err, results) {
            if (err) throw err;
            results.forEach(function (filename) {
                (function (filename) {
                    var spath = '根据filename 获取文件名';
                    c.put(filename, spath, function (err) {
                        if (err) throw err;
                        console.dir("上传文件" + spath);
                        c.end();
                    });
                })(filename)
            });
        });

   

});

这个看文档啊,文档说的那么清楚:https://github.com/mscdex/nod...

上传文件的

var Client = require('ftp');
  var fs = require('fs');

  var c = new Client();
  c.on('ready', function() {
    c.put('foo.txt', 'foo.remote-copy.txt', function(err) {
      if (err) throw err;
      c.end();
    });
  });
  // connect to localhost:21 as anonymous
  c.connect();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题