原文: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 详细用法