ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.connectors.FTPProxyConnector;
import it.sauronsoftware.ftp4j.connectors.HTTPTunnelConnector;
import it.sauronsoftware.ftp4j.connectors.SOCKS4Connector;
import it.sauronsoftware.ftp4j.connectors.SOCKS5Connector;
import it.sauronsoftware.ftp4j.connectors.SSLConnector;
JAR包下载地址:http://www.sauronsoftware.it/projects/ftp4j/download.php
示例代码:
//上传文件到FTP上去
FTPClient ftp =
new
FTPClient();
try
{
//如果配置了代理服务器,那么使用代理的一些配置
if
(ftp_proxy_ip.trim().length()>
0
)
{
//FTP代理连接器
if
(ftp_proxy_type.equals(
"FTPProxyConnector"
))
{
FTPProxyConnector type=
new
FTPProxyConnector(ftp_proxy_ip.trim(),ftp_proxy_port);
ftp.setConnector(type);
}
else
//SOCKET4代理连接器
if
(ftp_proxy_type.equals(
"SOCKS4Connector"
))
{
SOCKS4Connector type=
new
SOCKS4Connector(ftp_proxy_ip.trim(),ftp_proxy_port);
ftp.setConnector(type);
}
else
//SOCKET5代理连接器
if
(ftp_proxy_type.equals(
"SOCKS5Connector"
))
{
SOCKS5Connector type=
new
SOCKS5Connector(ftp_proxy_ip.trim(),ftp_proxy_port);
ftp.setConnector(type);
}
else
//http代理连接器
if
(ftp_proxy_type.equals(
"HTTPTunnelConnector"
))
{
HTTPTunnelConnector type=
new
HTTPTunnelConnector(ftp_proxy_ip.trim(),ftp_proxy_port);
ftp.setConnector(type);
}
else
//ssl代理连接器
if
(ftp_proxy_type.equals(
"SSLConnector"
))
{
SSLConnector type=
new
SSLConnector();
ftp.setConnector(type);
}
}
//连接上FTP
ftp.connect(ftp_ip, ftp_port);
//自动选择(根据文件内容)
ftp.setType(FTPClient.TYPE_AUTO);
//登录FTP
ftp.login(ftp_username, ftp_password);
System.out.println(
"FTP登录成功!"
);
}
catch
(Exception err)
{
System.out.println(
"FTP登录失败!"
);
return
;
}
//这个学校的FTP目录是否已存在,不存在就创建之
try
{
ftp.changeDirectory(
"/"
+school_id+
"/"
);
}
catch
(Exception err)
{
ftp.changeDirectory(
"/"
);
ftp.createDirectory(school_id);
}
try
{
ftp.changeDirectory(
"/"
+school_id+
"/"
);
//上传文档
File myfi=
new
File(TempDirectory+
".zip"
);
ftp.upload(myfi);
System.out.println(
"成功上传文件:"
+myfi.getName());
}
catch
(Exception e) {
System.out.println(
"error:"
+e.toString());
}
//登出
ftp.disconnect(
true
);
System.out.println(
"结束FTP上传,成功退出!"
);