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

FTP协议

FTP(File Transfer Protocol,文件传输协议) 是TCP/IP 协议组中的协议之一,允许TCP/IP网络上的两台计算机之间进行文件传输。 FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。只有拥有了FTP服务,客户端才能进行文件传输。

本文需要导入commons-net-3.6.jar至项目

FTP服务器

步骤:

1、创建FTP客户端对象

2、连接FTP服务器,输入主机的地址,输入端口号

3、登录,切换至指定目录

4、设置文件类型

5、创建文件输入流,用于读取本地文件

6、将本地文件上传至FTP服务器

7、上传完毕后,断开连接

package com.tyu.ftp;

import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;
public class Demo02 {
	public static void main(String[] args) throws IOException {
		FTPClient ftpClient=new FTPClient();
	try(FileInputStream in=new FileInputStream("D:\\文档\\2023-07\\xxx.jpg")){
		ftpClient.connect("192.xxx.xxx.xxx",21);
		ftpClient.login("user", "*****");
		
		boolean isChange=ftpClient.changeWorkingDirectory("文件名");
		if(!isChange) {
			//创建
			ftpClient.makeDirectory("文件名");
			//连接
			ftpClient.changeWorkingDirectory("文件名");
			}
		//上传指定文件
		ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
		ftpClient.storeFile(System.currentTimeMillis()+".jpg",in);
		}finally {
			ftpClient.disconnect();
		}
	}
}

文件下载

步骤:

1、创建FTP客户端对象

2、与FTP服务器创建连接

3、登录,切换指定目录

5、设置文件下载类型

6、创建文件输出流,用于从FTP服务器下载文件的写入

7、从FTP下载文件,下载完毕断开连接

package com.tyu.ftp;

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;

public class Demo03 {
		public static void main(String[] args) throws IOException {
			FTPClient ftpClient=new FTPClient();
		try(FileOutputStream out=new FileOutputStream("D:\\文档\\2023-07\\"+System.currentTimeMillis()+".jpg")){
			ftpClient.connect("192.xxx.xxx.xxx",21);
			ftpClient.login("user", "*****");
			//切换个人目录
			ftpClient.changeWorkingDirectory("文件名");
			//下载指定文件
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			boolean isRetrieve= ftpClient.retrieveFile("2.jpg",out);
			System.out.println("下载成功?"+isRetrieve);
			}finally {
				//断开连接
				ftpClient.disconnect();
			}
		}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值