Java实现FTP中文件上传和下载

Windows操作系统,通过IIS搭建FTP服务


java实现FTP服务所需要的jar包

commons-net-3.3.jar


代码示例

package com.ftp;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class ClientFTP {
	
	private final static String FtpHost = "127.0.0.1";// 主机ip
	private final static int FtpPort = 21;// 端口号
	private final static String FtpUserName = "admin";// ftp用户名
	private final static String FtpPassWord = "123456";// ftp密码
	private final static String FtpPath = "D:\ftp";// ftp中的目录

	/**
	 * 上传
	 */
	public static void uploadFile(FTPClient ftpClient,File file) {
		try {
			InputStream inputStream = new FileInputStream(file);
			ftpClient.setControlEncoding("UTF-8");
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			ftpClient.makeDirectory(FtpPath);//若目录不存在,则创建
			ftpClient.changeWorkingDirectory(FtpPath);//切换到FTP目录
			ftpClient.storeFile(file.getName(), inputStream);
			inputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 下载
	 */
	public static void downloadFile(FTPClient ftpClient,String downloadFileName,String localPath){
		try{
			ftpClient.changeWorkingDirectory(FtpPath);
			FTPFile[] ftpFiles = ftpClient.listFiles();
			for(FTPFile file : ftpFiles){
				if(file.getName().equalsIgnoreCase(downloadFileName)){
					File localFile = new File(localPath+"\\"+downloadFileName);
					OutputStream outputStream = new FileOutputStream(localFile);
					ftpClient.retrieveFile(downloadFileName, outputStream);
					outputStream.close();
				}
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		FTPClient ftpClient = new FTPClient();
		try{
			ftpClient.connect(FtpHost, FtpPort);//连接
			ftpClient.login(FtpUserName, FtpPassWord);//登陆
			// 验证FTP服务器是否登录成功
			int replyCode = ftpClient.getReplyCode();
			if (!FTPReply.isPositiveCompletion(replyCode)) {
				System.out.println("登陆失败!");
			}
			
			/**
			 * 上传
			 */
			uploadFile(ftpClient,new File("C:\\Users\\admin\\Desktop\\533820713366173117.jpg"));
			
			// FTP目录-文件列表
			ftpClient.changeWorkingDirectory(FtpPath);
			FTPFile[] ftpFiles = ftpClient.listFiles();
			for (FTPFile file : ftpFiles) {
				System.out.println(file.getName());
			}
			
			/**
			 * 下载
			 */
			downloadFile(ftpClient,"533820713366173117.jpg","D:\\");
			
			/**
			 * 删除
			 */
			// FTP目录
			ftpClient.changeWorkingDirectory(FtpPath);
			FTPFile[] ftpFiles_ = ftpClient.listFiles();
			for (FTPFile file : ftpFiles_) {
				if(file.getName().equals("533820713366173117.jpg")){
					ftpClient.deleteFile(file.getName());
				}
			}
			//删除后
			FTPFile[] ftpFiless = ftpClient.listFiles();
			for (FTPFile file : ftpFiless) {
				System.out.println(file.getName());
			}
			
			ftpClient.logout();//退出
		}catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(ftpClient.isConnected()){
				try {
					ftpClient.disconnect();//断开连接
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值