教程集 www.jiaochengji.com
教程集 >  操作系统  >  windows  >  正文 FTP自动下载和上传的实现方法

FTP自动下载和上传的实现方法

发布时间:2020-04-23   编辑:jiaochengji.com
教程集为您提供FTP自动下载和上传的实现方法等资源,欢迎您收藏本站,我们将为您提供最新的FTP自动下载和上传的实现方法资源
之前一直很纠结这个问题,本地项目需要上传到服务器上的时候,一般都是采用FTP这种方式。
<script>ec(2);</script>

这种方式的问题就是很麻烦,需要手工上传,当目录很深或者有多个服务器的时候很麻烦。另外也用过SVN的自动部署,文件修改后,check in到SVN,然后到服务器端svn update 以下,比较方便,但是遇到冲突也会很麻烦。所以之前在公司用的都是一个Java开发的上传工具,只要写好配置文件后就可以了,支持多服务器,多工程。
    比如这样:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6775')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6775>server.names=192.168.12.221,192.168.9.26,192.168.5.186,114.80.212.238
work.dir=e:\Ftp_Upload_Log
server.cfg.192.168.12.221=\FtpConfig\Ftp_192_168_12_221.properties
server.cfg.114.80.212.238=\FtpConfig\Ftp_114_80_212_238.properties</td> </tr> </table>

然后是单独的配置文件:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy7963')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy7963>

server.ip = 192.168.5.186
server.account = fff
server.pwd = fff
server.apps = home,wenku

local.source.home =D:/devspace/home
remote.home = /usr/xxtsrc/home
local.bak.home = e:/bak/home

local.source.wenku =D:/devspace/wenku
remote.wenku = /usr/xxtsrc/wenku
local.bak.wenku = e:/bak/wenku

</td> </tr> </table>

    但是,有一个问题就是配置麻烦,而且不支持SFTP协议。这对于需要在windows和Linux之间传文件很重要。想要重构以前的软件就得改动不少地方。然后就想到了能不能换种方式实现上传下载,最后转了一圈,想到的最简单的方法就是用FTP的队列工具。比如,FlashFxp就有队列功能。但是它不支持自动管理,需要手工添加文件到队列。再想,何不去解析这个队列文件的格式,然后自动生成队列文件呢?

     FlashFxp的帮助文档已经对其队列文件(.fqf)的格式解析的很清楚了。fqf文件是按行组织的。每一行用ASCII 1分割(还有用3的),回车换行结束。具体的格式如下:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4007')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4007>

<Type><ASCII 1><Direction><ASCII 1><Source Host><ASCII 1><Target Host><ASCII 1><Source Filename><ASCII 1><Target Filename><ASCII 1><File Size><CR><LF>

</td> </tr> </table>

解释:
<Type>是队列类型,1个字节,0表示文件,1表示文件夹,剩下的几个不常用;
<ASCII 1> 是分隔符,1字节,ASCII为1,是整个fqf文件里的分隔符,每个命令后都会用到;
<Direction>是上传方向,1字节,0上传,1下载,上传到左边是2,下载到左边是3,上传到右边是4,下载到右边是5。(因为FlashFxp可以左右窗口互换,有点蛋疼)
<Source Host> 源主机名:也就是本机,用“-”代替。
<Target Host>目标主机名:也就是你在FlashFxp的站点管理器里设置的站名,前面还有8个字节的hash码。
<Source Filename> 源文件名,即本机路径;
<Target Filename> 目标文件名,可以根据源文件名生成
<File Size> 文件大小
<CR><LF> 回车换行符
其格式如下图所示:

格式知道了,那就很好实现了。用LUA根据上传列表自动生成队列文件,然后调用FlashFxp,即可实现自动上传了。
 当上传比较频繁的时候,还是可以减少一些工作量的。不过依赖于FTP工具。如果时间充足的话,还是考虑重构之前的工具,增加对SFTP协议的支持,重构界面

</td> </tr> </table>

您可能感兴趣的文章:
php使用ftp下载文件的简单例子
php ftp下载文件的代码一例
php ftp文件上传函数的简单例子
php ftp类(上传、下载、复制、移动等)
php ftp函数应用(范例,ftp类,创建目录函数等)
php实现文件的自动ftp更新
在shell脚本中使用ftp的方法分享
php自定义ftp类与调用实例
php实现ftp上传的类与调用示例
ftp自动上传下载的shell脚本

[关闭]
~ ~