最近项目上需要一个功能:使用Android软件搭建一个FTP服务器,接收文件,然后再使用FTP客户端,将此文件上传到另一个PC服务器上。
给予以上的需求,Android实现FTP客户端的功能已经实现,且网上有很多资料可供参考。所以主要的工作就是搭建这个FTP服务器。恰巧之前实现FTP客户端功能时使用的是Apache的FTP框架,而搭建FTP服务器的功能也可以使用Apache的这个FTP框架,所以直接下载Apache中用于搭建FTP服务器框架的库文件即可。
FTP服务器搭建库文件下载路径
我下载的是1.0.6版本的库文件(第一次下载的最新的1.1.1版本的文件,但是放在项目中后发现没有Ftplet的打包内容,不知道为什么。),如下是我的库文件目录:
注意:需要在app的gradle中配置如下内容:
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES'
}
否则,在你编译的时候,会因为这几个库文件中存在重复的以上信息而报错,所以在编译打包的时候去除以上重复的信息。
接下来,就讲述一下Android搭建FTP服务器的过程。
1 . 搭建FTP服务器
1.1 在搭建服务器之前,我们首先定义一下默认的客户端用户名和密码,可以使用String类型的资源文件配置,并将配置写入到一个配置文件中,FTP服务器初始化客户端账户的时候,可以加载该配置文件。
String类型资源文件:在values中创建一个ftpserver_config.xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ftp_users">
ftpserver.user.admin.userpassword=admin123456\r\n
ftpserver.user.admin.homedirectory=/mnt/sdcard\r\n
ftpserver.user.admin.enableflag=true\r\n
ftpserver.user.admin.writepermission=true\r\n
ftpserver.user.admin.maxloginnumber=2\r\n
ftpserver.user.admin.maxloginperip=2\r\n
ftpserver.user.admin.idletime=3000\r\n
ftpserver.user.admin.uploadrate=102400\r\n
ftpserver.user