`
vtrtbb
  • 浏览: 360069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个ftp客户端

    博客分类:
  • java
阅读更多

代码如下:

 

其中用到了apache commons-net包

 

public class FtpUtil {

	private static FTPClient ftpClient;
	private static FtpUtil instatnce;
	public static final int BINARY_FILE_TYPE = FTP.BINARY_FILE_TYPE;
	public static final int ASCII_FILE_TYPE = FTP.ASCII_FILE_TYPE;

	private FtpUtil() {

	}

	public static synchronized FtpUtil getInstatnce() {
		if (instatnce == null) {
			instatnce = new FtpUtil();
			ftpClient = new FTPClient();
		}
		return instatnce;
	}

	public synchronized boolean connectServer(FtpConfig ftpConfig) throws SocketException,IOException {
		boolean flag = false;
		String server = ftpConfig.getHost();
		int port = ftpConfig.getPort();
		String user = ftpConfig.getUser();
		String password = ftpConfig.getPwd();

		boolean logined = connectServer(server, port, user, password);
		if (logined) {
			flag = true;
		}
		return flag;
	}

	private boolean connectServer(String server, int port, String user,String password) throws SocketException, IOException {
		boolean flag = false;
		ftpClient.setControlEncoding("UTF-8");
		ftpClient.connect(server, port);
		//被动模式传输
		ftpClient.enterLocalPassiveMode();
		ftpClient.setFileType(BINARY_FILE_TYPE);
		boolean logined = ftpClient.login(user, password);
		if (logined) {
			flag = true;
		}
		return flag;
	}
	
	public void setFileType(int fileType) throws IOException {
		ftpClient.setFileType(fileType);
	}
	
	/**
	 * 关闭服务端
	 * @throws IOException
	 */
	public void closeServer() throws IOException {
		if (ftpClient.isConnected()) {
			ftpClient.disconnect();
		}
	}
	
	/**
	 * 退出ftp
	 * @throws IOException
	 */
	public synchronized void logOut() throws IOException {
		ftpClient.logout();
	}
	
	/**
	 * 改变服务端目录
	 * @param path
	 * @return
	 * @throws IOException
	 */
	public boolean changeDirectory(String path) throws IOException {
		return ftpClient.changeWorkingDirectory(path);
	}
	
	/**
	 * 建立目录
	 * @param pathName
	 * @return
	 * @throws IOException
	 */
	public boolean createDirectory(String pathName) throws IOException {
		return ftpClient.makeDirectory(pathName);
	}

	/**
	 * 删除服务端目录
	 * @param path
	 * @return boolean
	 * @throws IOException
	 */
	public boolean removeDirectory(String path) throws IOException {
		return ftpClient.removeDirectory(path);
	}
	
	/**
	 * 上传文件到服务端
	 * @param fileName 
	 * @param newName
	 * @return
	 * @throws IOException
	 */
	public boolean uploadFile(String fileName, String newName)	throws IOException {
		boolean flag = false;
		InputStream iStream = null;
		try {
			iStream = new FileInputStream(fileName);
			ftpClient.storeFile(newName, iStream);
			if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
				flag = true;
			}

		}catch(IOException e) {
			flag = false;
			return flag;
		}finally {
			if (iStream != null) {
				iStream.close();
			}
		}
		return flag;
	}	
	
	public static void main(String[] args) {
		FtpConfig ftpConfig = new FtpConfig() ;
		ftpConfig.setHost("192.168.0.135") ;  
		ftpConfig.setUser("admin") ;
		ftpConfig.setPwd("1111") ;
		ftpConfig.setPort(21) ;	
		FtpUtil util = FtpUtil.getInstatnce();	
		try {
			boolean flag = util.connectServer(ftpConfig) ;
			if(flag){
				System.out.println("--------------成功连接ftp");				
				util.uploadFile("d:/aaaa.xml", "/aaa-----3.xml");
				util.uploadFile("d:/aaab.xml", "/aaa4.xml");
				System.out.println("--------------上传文件完成");
				util.logOut();				
			}else{
				System.out.println("--->ftp连接失败,请检查客户端或服务端设置");
			}
		} catch (SocketException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}
		finally{
			try {
				util.closeServer();
			} catch (IOException e) {				
				e.printStackTrace();
			}
		}
	}
	
	


}

 

 

public class FtpConfig {
	
	private String host;
	private int port;
	private String user;
	private String pwd;
	
	public FtpConfig() {
		
	}

	public String getHost() {
		return host;
	}

	public void setHost(String host) {
		this.host = host;
	}

	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
	}

	public String getUser() {
		return user;
	}

	public void setUser(String user) {
		this.user = user;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	
	
}

 

分享到:
评论

相关推荐

    一个FTP客户端

    如果用本FTP客户端登录某个FTP服务器,则先必须申请一个FTP空间,申请FTP空间时,它会给你一个FTP主机地址、用户名称、用户密码。 测试步骤: 1、项目编译并运行。 2、申请一个FTP空间(这里不讨论)。 3、输入FTP...

    一个FTP客户端的C#代码

    在提供的压缩包文件中,FTPclien.cs很可能是实现了上述功能的FTP客户端代码,而"点内源代码--下载中心.url"则可能是一个链接,指向更多相关源代码或下载资源。学习和理解FTPclien.cs的代码结构和逻辑,可以加深对FTP...

    MFC实现的一个FTP客户端

    本项目基于MFC实现了一个FTP客户端,为用户提供了一种直观、便捷的方式来与FTP服务器交互。 **MFC框架** MFC是一个强大的开发工具,它封装了Windows API,使得开发者可以用C++编写出具有Windows风格的应用程序。...

    Go-Go的一个FTP客户端包

    "Go-Go的一个FTP客户端包"指的是一个专为Go语言设计的第三方库,用于简化FTP客户端的开发工作。这个库名为`ftp`,它提供了丰富的API,便于开发者集成到他们的项目中,以实现与FTP服务器的高效通信。 FTP协议本身是...

    一个FTP客户端应用程序.zip_I9B_ftp客户端

    本PPT将详细介绍如何实现一个FTP客户端应用程序,以下是相关知识点的详细说明: 1. FTP基本概念: - FTP协议:定义了客户端和服务器之间的通信格式,包括命令和响应的语法。 - 主动模式和被动模式:主动模式中,...

    一个FTP客户端源码

    在本项目中,我们有一个名为"FTP.cpp"的源码文件,它构成了FTP客户端的核心功能。下面我们将深入探讨FTP协议、FTP客户端的基本原理以及可能在"FTP.cpp"中实现的关键功能。 FTP协议是一种基于TCP的协议,其主要目的...

    QT5.0实现FTP客户端

    2. **QNAM与FTP**:虽然QNetworkAccessManager没有直接提供FTP操作的接口,但可以通过构造一个QNAM的子类并重写其内部的槽函数,来监听FTP相关的信号,从而实现FTP客户端功能。 3. **QNetworkRequest**:创建...

    java ftp客户端,服务端

    要实现FTP客户端,首先需要创建一个Socket连接到FTP服务器,然后通过输入输出流(InputStream和OutputStream)进行数据交互。客户端通常需要执行的操作包括登录、改变工作目录、列出目录内容、上传和下载文件等。 ...

    一个FTP客户端程序.zip_FTP客户端程序_ftp_ftp客户端 vb

    本项目是一个使用VB(Visual Basic)编程语言开发的FTP客户端程序,具有良好的功能性和用户界面。 VB是一种流行的事件驱动编程环境,由微软开发,主要用于创建Windows应用程序。在这个FTP客户端程序中,VB被用来...

    java FTP客户端程序

    在这个“java FTP客户端程序”中,我们可以深入探讨如何使用Java来编写一个FTP客户端,以及涉及到的相关知识点。 首先,我们需要了解Java中的`java.net`和`java.io`这两个核心库,它们是实现FTP客户端的基础。`java...

    ftp客户端与服务器端编程

    3. 数据连接的建立:在需要传输文件时,客户端和服务器会根据主动或被动模式协商一个数据连接来传输数据。 4. 安全性考虑:FTP可以通过SSL/TLS(FTPS)或SSH(SFTP)提供加密,保护数据在传输过程中的安全性。 5. ...

    MFC实现FTP客户端

    本篇将深入探讨如何使用MFC实现一个FTP客户端,以实现与FTP服务器的连接及文件传输功能。 FTP(File Transfer Protocol)是一种网络协议,用于在网络上进行文件传输。通过FTP,用户可以在本地计算机和远程FTP服务器...

    VC++实现ftp客户端

    在本文中,我们将深入探讨如何使用VC++来实现一个FTP客户端。FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。通过FTP客户端,用户可以连接到远程服务器,执行文件的上传、下载以及目录的...

    基于Java的FTP客户端源代码

    要创建一个FTP客户端,首先需要导入相关库并创建FTPClient实例: ```java import org.apache.commons.net.ftp.*; FTPClient ftpClient = new FTPClient(); ``` 然后,我们需要连接到FTP服务器: ```java ...

    Qt实现FTP客户端

    本教程将深入探讨如何利用Qt的QFtp库来构建一个FTP客户端,支持文件的上传和下载功能。 **1. QFtp库介绍** QFtp库是Qt提供的一个用于FTP通信的模块,它提供了连接、登录、文件传输、目录浏览等FTP操作的基本功能。...

    ftp客户端和ftp通信协议

    在这个压缩包中,我们很可能会找到一个FTP客户端的源代码,这对于理解FTP工作原理和进行自定义开发非常有价值。 FTP通信协议基于TCP/IP模型,分为两个主要通道:控制通道和数据通道。控制通道用于建立连接、发送...

    ftp.zip_FTP客户端程序_ftp_ftp java_ftp客户端 java_java ftp客户端

    在这个名为"ftp.zip"的压缩包中,包含了一个FTP客户端程序,它使用Java编程语言编写,能够帮助用户实现文件的上传和下载功能。这个客户端程序非常实用,因为只需要安装JDK(Java Development Kit)就可以运行,无需...

    FTP客户端设计与实现

    实现FTP客户端的基本功能,带有图形用户界面。 直接双击即可。

    简单FTP客户端软件

    这是一个FTP客户端的简单实现,使用语言为java,FTP服务器为FileZilla Server。该客户端软件使用的是org.apache.commons.net.ftp.FTPClient这个类,FTPClient这个类,该类具体的可查看官网的api文档,链接:...

    linux下QT实现ftp客户端

    首先,我们来看标题"linux下QT实现ftp客户端",这表明我们要在Linux操作系统上,利用QT框架编写一个FTP客户端程序。FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,而QT则为这个过程提供...

Global site tag (gtag.js) - Google Analytics