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

FTP协议:

 FTP指的是文件传输协议,是用于在网络上进行文件传输的一套标准协议。它工作在OSI模型的第七层,TCP模型的第四层即应用层,使用TCP传输而不是UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的,而且是面向连接, 为数据传输提供可靠保证。

FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而,用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

FTP协议由什么组成?

FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

FTP协议有什么作用?

FTP协议的主要作用就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。具体作用如下:

1、促进文件的共享(计算机程序或数据;

2、鼓励间接或者隐式的使用远程计算机;

3、向用户屏蔽不同主机中各种文件存储系统(Filesystem)的细节;

4、可靠和高效的传输数据。

  FTP文件的上传:

步骤:

1.创建FTP协议对象

2.创建文件输入流,便于读取本地文件

3.通过connect()方法,连接FTP服务器与客户端的连接

4.登录

5、设置上传文件的类型,使用setFileType()方法

6、上传至FTP服务器使用storeFile("**.jpg", ...);

  参数1:ftp本地服务器的存储位置(文件名)
  参数2:本地的文件输入流

7、断开连接

过程如下:

  public static void main(String[] args) {
		FTPClient ftpClient = new FTPClient();
		//创建文件输入流,用于读取本地的文件
		try (FileInputStream localIn = new FileInputStream("D:\\20220529\\20220713\\456.jpg")) {
			//连接FTP服务器
			ftpClient.connect("192.168.254.160", 21);
			//登录
			ftpClient.login("admin", "admin");
			//存储文件(将本地文件上传至FTP服务器)
			//参数1:FTP服务器服务器的存储位置(目录+ 文件名)
			//参数2:本地的文件输入流
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//存储前设置文件类型
			boolean is = ftpClient.storeFile("456.jpg", localIn);//存储
			System.out.println("是否传入成功" + is);
		} catch (IOException e) {
			
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				
				e.printStackTrace();
			}
		}
	}

       FTP文件下载:

步骤:

1、创建FTP协议的对象
2、创建文件输出流,便于下载的文件写入本地

3、建立FTP服务器的连接
4、登录
5、设置下载文件的类型
6、文件下载
 参数1:服务器指定文件

 参数2:本地输出流(负责下载后写入)

过程如下:

   public static void main(String[] args) {
    	String downLoadFileName = "p511118051.jpg";
		FTPClient ftpClient = new FTPClient();
		try (FileOutputStream out = new FileOutputStream("D:\\20220529\\20220713\\" + downLoadFileName)) {
			ftpClient.connect("192.168.254.185", 21);
			ftpClient.login("admin", "admin");
			ftpClient.changeWorkingDirectory("dir01");
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			boolean isRetrieve = ftpClient.retrieveFile(downLoadFileName, out);
			System.out.println("下载成功?" + isRetrieve);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}

以上便是FTP文件的上传与下载的思路过程,希望对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值