基于ftp协议的上传与下载


FTP协议的理解

ftp协议:就是文件传输协议,是一种基于TCP/IP的应用层协议。包含FTP服务器和FTP客户端两部分。FTP客户端需通过‘FTP协议’对服务器进行访问,其中FTP服务器用来存储文件,用于在Internet上的控制文件的双向传输。

FTP的工作模式

在进行ftp操作时,首先需要保证远程服务器端的通信状态,在远程服务器中执行FTP服务器应用程序,使服务器处于等待被连接的状态;这样,就可以通过自己的FTP客户端和FTP服务器进行连接通信。

FTP的服务器

FTP服务器使用两个端口,分别为控制端口(命令端口)和数据端口。控制端口号一般为21,数据端口一般为20。控制socket用来传输命令,数据socket用来传输数据。每一个FTP命令发送后,FTP服务器就会返回一个字符串,其中包含一个响应码和一些说明信息,其中响应码主要用于判断命令是否被成功执行了。
在这里插入图片描述
服务器端需创建一个用户,设置用户名并设置指定服务器用户对应的本地文件目录,以及设置客户端对自己的访问权限。
在这里插入图片描述


上传文件至ftp服务器

1、首先创建FTP协议的客户端对象

FTPClient ftpClient = new FTPClient();

2、连接FTP服务器

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

3、登录,通过传入服务器的用户名和密码

ftpClient.login("root", "root");

4、将本地文件上传
优化步骤:为了便于上传,我们可以做一个切换目录的操作,可以切换至我们指定的目录或创建的新目录下

if (!ftpClient.changeWorkingDirectory("upload")) {
	//如果目录不存在切换不成功 创建新目录
	ftpClient.makeDirectory("upload");
 
	//切换到新目录
	ftpClient.changeWorkingDirectory("upload");
}

切换完目录后,我们需要指定上传文件的存储类型然后再上传。

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //存储前设置文件类型
// 要上传的文件
File tempExcelFile = new File("本地文件路径");
// 通过输入流包装
FileInputStream in = new FileInputStream(tempExcelFile)
 
// 使用storeFIle方法上传,存储至ftp服务器
ftpClient.storeFile(tempExcelFile.getName(), in);
//最后记得要手动断开连接
文件上传至ftp的完整过程
	//创建ftp客户端对象
	FTPClient ftpClient=new FTPClient();
	//创建输入流,读取本地文件
	try(InputStream localIn=new FileInputStream("c://text//Du.jpg")) {
   
		//连接服务器
		ftpClient.connect("192.168.254.185",21);	
		ftpClient.login("root", "root");//登录	
		//切换至指定目录
		boolean isChange=ftpClient.changeWorkingDi
  • 18
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值