nodejsでFTPファイル操作

原文:https://blog.csdn.net/u011249920/article/details/80229818 

今天花了一天时间自己搭建了ftp服务器,并在后台成功获取自己ftp服务器上的图片并实时返回给前端界面显示

var ftp = require('ftp'),

    ftp = new ftp(),

    fs = require('fs'),
 
    watch = require('watch') //用来监听目录变化


//当ftp连接成功时触发

ftp.on('ready',function(){

   getlist('.') //可根据自己情况填写ftp服务器上的文件路径,我要获取的是ftp的根目录下的所有文件
    
   watch.createMonitor('/xx/xxx', monitor => {
        monitor.on("created", function (f, stat) {
            console.log('created')
            console.log(f)
        })
    })


});

ftp.connect({

    host: '***.***.**.**',  //自己ftp服务器地址

    user: '*****',

    password: '******'

});

//查找文件

function getlist(path){

    //罗列出该文件夹内的文件列表

    ftp.list(path,function(err,list){

        if(err) throw err;

        list.forEach(function(item){

            if(item.type==='d'){
                //文件夹其实是一种特殊的文件,因此这里还存在两个「文件夹」:'.'和'..',但我们对它们不做处理
                if(item.name==='.')return;
                if(item.name==='..')return;
                //然后,历遍一下这个文件夹
                getlist(path+'/'+item.name);

            }else{
                if(item.size/1024 > 100 ){
                    return
                }else{
                    let picPath = path+'/'+item.name
                    picPath = picPath.substring(1)
                    picPath ='ftp://***.***.**.**'+ picPath
                    console.log(picPath)
                    return picPath
                }
            }

        });
    });

}

--------------------- 
参考1:http://www.open-open.com/lib/view/open1408006289661.html 简单介绍node-ftp 
node-ftp是一个node.js的FTP客户端模块,提供了一个用于与FTP服务器进行通信的异步接口。

示例
获取当前的(远程)工作目录的目录列表:
  var Client = require('ftp');

  var c = new Client();
  c.on('ready', function() {
    c.list(function(err, list) {
      if (err) throw err;
      console.dir(list);
      c.end();
    });
  });
  // connect to localhost:21 as anonymous
  c.connect();
下载远程文件“foo.txt”,并将其保存到本地文件系统:
  var Client = require('ftp');
  var fs = require('fs');

  var c = new Client();
  c.on('ready', function() {
    c.get('foo.txt', function(err, stream) {
      if (err) throw err;
      stream.once('close', function() { c.end(); });
      stream.pipe(fs.createWriteStream('foo.local-copy.txt'));
    });
  });
  // connect to localhost:21 as anonymous
  c.connect();
上传本地文件“foo.txt'到服务器:
  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();
  
参考2:http://www.cnblogs.com/meteoric_cry/p/3975176.html 详细用法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值