基于FTP协议的文件上传与下载

        FTP协议全称叫做文件传输协议,它用于在Internet上的控制文件的双向传输。在FTP的使用当中,经常会提到两个概念,“下载”和“上传”。下载文件就是从远程主机拷贝文件到自己的计算机中;上传就是从自己的计算机中拷贝到远程计算机,本篇文章将客户端和服务器同时使用一台主机进行操作。

        使用FTP时,必须先登录,在FTP服务器上获得相应的权限后,才能进行上传和下载文件。也就是说,要想同哪一台 计算机传送文件,就必须具有哪一台计算机的适当授权。TCP/IP协议中,FTP标准命令TCP 端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受 操作系统的限制。

        在进行使用FTP服务器来进行文件传输前,要先对FTP服务器的IP地址,端口,以及用户的权限进行设置。以我目前设置为例进行下边的操作。

         在通过Java来进行连接FTP服务器之前先准备好相应的jar包(配置过maven中央仓库请忽略)

commons-net-3.6.jar下载地址:Central Repository: commons-net/commons-net/3.6

一、上传文件至FTP服务

(1)创建FTP客户端对象

FTPClient ftpClient = new FTPClient();

(2) 连接FTP服务器

// 传入我们的IP地址以及服务器端口号
ftpClient.connect("192.168.137.1", 21);

(3)登录FTP服务器

// 输入我们在FTP服务器中配置好的用户名和密码
ftpClient.login("admin", "admin");

(4)为确保我们的文件能够上传成功,我们在FTP服务器中切换上传目录

if (!ftpClient.changeWorkingDirectory("upload")) {
	// 创建目录
	ftpClient.makeDirectory("upload");

	// 切换
	ftpClient.changeWorkingDirectory("upload");
}

(5)设置文件类型

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

(6)上传文件

// 要上传的文件
File tempExcelFile = new File("D:\\IOTest\\tempFile\\data.xlsx");

// 通过输入流包装
FileInputStream in = new FileInputStream(tempExcelFile)

// 使用storeFIle方法上传 
ftpClient.storeFile(tempExcelFile.getName(), in);

最终我们可以看到在FTP服务器设置的文件夹内可以查看到刚才上传的文件

 二、从FTP服务器上下载文件

下载和上传类似,同样的是先进行连接、登录、设置文件类型,最后下载

具体代码实现如下:

// 创建FTP客户端对象
FTPClient ftpClient = new FTPClient();

// 连接FTP服务器
ftpClient.connect("192.168.137.1", 21);

// 登录FTP服务器
ftpClient.login("admin", "admin");

// 设置文件类型
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

// 设置要下载的文件名称
String fileName = "java.jpg";
		
// 创建输出流,传入要下载的位置
FileOutputStream out = new FileOutputStream("D:\\IOTest\\load\\" + 13 + ".jpg");

// 下载(调用retrieveFile()方法实现下载)
ftpClient.retrieveFile(fileName, out);

最终,我们能看到文件已经成功的下载到本地了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值