from: http://www.open-open.com/lib/view/open1333860679171.html
- 所用到的jar包有:
- commons-net-1.4.1.jar
- jakarta-oro.jar
一、上传文件
01 |
文件上传源代码 |
02 |
/**
|
03 |
* Description: 向FTP服务器上传文件
|
04 |
* @Version1.0
|
05 |
* @param url FTP服务器hostname
|
06 |
* @param port FTP服务器端口
|
07 |
* @param username FTP登录账号
|
08 |
* @param password FTP登录密码
|
09 |
* @param path FTP服务器保存目录
|
10 |
* @param filename 上传到FTP服务器上的文件名
|
11 |
* @param input 输入流
|
12 |
* @return 成功返回true,否则返回false
|
13 |
*/ |
14 |
public static boolean uploadFile(
|
15 |
String url, //FTP服务器hostname
|
16 |
int port, //FTP服务器端口
|
17 |
String username, // FTP登录账号
|
18 |
String password, //FTP登录密码
|
19 |
String path, //FTP服务器保存目录
|
20 |
String filename, //上传到FTP服务器上的文件名
|
21 |
InputStream input // 输入流
|
22 |
) {
|
23 |
boolean success = false ;
|
24 |
FTPClient ftp = new FTPClient();
|
25 |
try {
|
26 |
int reply;
|
27 |
ftp.connect(url, port); //连接FTP服务器
|
28 |
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
|
29 |
ftp.login(username, password); //登录
|
30 |
reply = ftp.getReplyCode();
|
31 |
if (!FTPReply.isPositiveCompletion(reply)) {
|
32 |
ftp.disconnect();
|
33 |
return success;
|
34 |
}
|
35 |
ftp.changeWorkingDirectory(path);
|
36 |
ftp.storeFile(filename, input);
|
37 |
|
38 |
input.close();
|
39 |
ftp.logout();
|
40 |
success = true ;
|
41 |
} catch (IOException e) {
|
42 |
e.printStackTrace();
|
43 |
} finally {
|
44 |
if (ftp.isConnected()) {
|
45 |
try {
|
46 |
ftp.disconnect();
|
47 |
} catch (IOException ioe) {
|
48 |
}
|
49 |
}
|
50 |
}
|
51 |
return success;
|
52 |
}
|
以下是文件上传的测试用例:
01 |
/** |
02 |
* 将本地文件上传到FTP服务器上
|
03 |
*
|
04 |
*/ |
05 |
public void testUpLoadFromDisk(){
|
06 |
try {
|
07 |
FileInputStream in= new FileInputStream( new File( "D:/test.txt" ));
|
08 |
boolean flag = uploadFile( "127.0.0.1" , 21 , "administrator" , "zyuc2011" , "test" , "test.txt" , in);
|
09 |
System.out.println(flag);
|
10 |
} catch (FileNotFoundException e) {
|
11 |
e.printStackTrace();
|
12 |
}
|
13 |
} |
01 |
/** |
02 |
* 在FTP服务器上生成一个文件,并将一个字符串写入到该文件中
|
03 |
*
|
04 |
*/ |
05 |
public void testUpLoadFromString(){
|
06 |
try {
|
07 |
String str = "这是要写入的字符串!" ;
|
08 |
InputStream input = new ByteArrayInputStream(str.getBytes( "utf-8" ));
|
09 |
boolean flag = uploadFile( "127.0.0.1" , 21 , "administrator" , "zyuc2011" , "test" , "test.txt" , input);
|
10 |
System.out.println(flag);
|
11 |
} catch (UnsupportedEncodingException e) {
|
12 |
e.printStackTrace();
|
13 |
}
|
14 |
} |
二、文件下载
01 |
文件下载源代码 |
02 |
/**
|
03 |
* Description: 从FTP服务器下载文件
|
04 |
* @Version1.0
|
05 |
* @param url FTP服务器hostname
|
06 |
* @param port FTP服务器端口
|
07 |
* @param username FTP登录账号
|
08 |
* @param password FTP登录密码
|
09 |
* @param remotePath FTP服务器上的相对路径
|
10 |
* @param fileName 要下载的文件名
|
11 |
* @param localPath 下载后保存到本地的路径
|
12 |
* @return
|
13 |
*/ |
14 |
public static boolean downFile(
|
15 |
String url, //FTP服务器hostname
|
16 |
int port, //FTP服务器端口
|
17 |
String username, //FTP登录账号
|
18 |
String password, //FTP登录密码
|
19 |
String remotePath, //FTP服务器上的相对路径
|
20 |
String fileName, //要下载的文件名
|
21 |
String localPath //下载后保存到本地的路径
|
22 |
) {
|
23 |
boolean success = false ;
|
24 |
FTPClient ftp = new FTPClient();
|
25 |
try {
|
26 |
int reply;
|
27 |
ftp.connect(url, port);
|
28 |
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
|
29 |
ftp.login(username, password); //登录
|
30 |
reply = ftp.getReplyCode();
|
31 |
if (!FTPReply.isPositiveCompletion(reply)) {
|
32 |
ftp.disconnect();
|
33 |
return success;
|
34 |
}
|
35 |
ftp.changeWorkingDirectory(remotePath); //转移到FTP服务器目录
|
36 |
FTPFile[] fs = ftp.listFiles();
|
37 |
for (FTPFile ff:fs){
|
38 |
if (ff.getName().equals(fileName)){
|
39 |
File localFile = new File(localPath+ "/" +ff.getName());
|
40 |
OutputStream is = new FileOutputStream(localFile);
|
41 |
ftp.retrieveFile(ff.getName(), is);
|
42 |
is.close();
|
43 |
}
|
44 |
}
|
45 |
|
46 |
ftp.logout();
|
47 |
success = true ;
|
48 |
} catch (IOException e) {
|
49 |
e.printStackTrace();
|
50 |
} finally {
|
51 |
if (ftp.isConnected()) {
|
52 |
try {
|
53 |
ftp.disconnect();
|
54 |
} catch (IOException ioe) {
|
55 |
}
|
56 |
}
|
57 |
}
|
58 |
return success;
|
59 |
}
|
以下是文件下载的测试用例:
01 |
/** |
02 |
* 将FTP服务器上文件下载到本地
|
03 |
*
|
04 |
*/ |
05 |
public void testDownFile(){
|
06 |
try {
|
07 |
boolean flag = downFile( "127.0.0.1" , 21 , "administrator" , "zyuc2011" , "test" , "test.txt" , "D:/" );
|
08 |
System.out.println(flag);
|
09 |
} catch (Exception e) {
|
10 |
e.printStackTrace();
|
11 |
}
|
12 |
} |
相关推荐
Java FTP 客户端开发是网络编程中的一个重要领域,它允许程序通过FTP(File Transfer Protocol)协议进行文件的上传、下载、重命名和删除等操作。在这个“javaftp.rar”项目中,开发者使用了Java Swing作为图形用户...
Java 中使用 FTPClient 实现上传下载文件 Java 中使用 FTPClient 实现上传下载...使用 FTPClient 可以轻松实现文件上传和下载,并提供了许多其他功能。FTPClient 是一个非常实用的工具类,广泛应用于 Java 程序中。
这篇博客“使用FTPClient实现文件的上传下载”显然关注的是如何利用编程接口FTPClient来执行FTP操作,如上传和下载文件。FTPClient是Apache Commons Net库的一部分,它为Java开发者提供了方便的API来实现FTP功能。 ...
开发者通过Swing的组件实现了文件上传、下载、重命名和删除的功能,并将这些功能封装在一个可以通过命令行或者图形界面操作的FTP客户端中。在实际开发过程中,开发者需要对FTP协议有深入理解,熟悉Swing组件的使用,...
### Java FTPClient 文件上传下载知识点详解 #### 一、引言 在现代软件开发中,文件传输是一项基本而重要的功能。对于Java开发者来说,利用Java的FTPClient进行文件的上传和下载是常见的需求之一。本篇文章将围绕...
throw new IOException("文件上传失败"); } ``` 下载文件则调用`retrieveFile`方法: ```java OutputStream outputStream = new FileOutputStream("localSavePath"); boolean downloadSuccess = ftpClient....
在这个项目中,开发者使用Java的FTPClient库和Swing GUI框架创建了一个功能齐全的FTP客户端,让用户能够方便地进行文件的上传和下载操作。以下是关于这个FTP客户端的一些关键知识点: 1. **FTPClient库**:Java的...
在本文中,我们将深入探讨如何使用FTPClient来实现FTP文件上传,特别是处理中文文件名的上传问题。 FTP是一种广泛使用的互联网协议,允许用户在两台计算机之间传输文件。在Java中,我们可以利用Apache Commons Net...
FTPClient是Java中实现FTP功能的一个库,它提供了丰富的API,使得开发者能够方便地与FTP服务器进行交互,包括上传、下载和删除文件。在这个项目中,我们将会深入探讨如何使用FTPClient来完成这些操作。 首先,要...
本主题将深入探讨如何使用`FtpClient`类从Apache Commons Net库来实现文件上传功能。Apache Commons Net提供了丰富的FTP操作接口,使得开发者能够方便地执行包括上传、下载、删除等在内的各种FTP操作。 首先,我们...
在Java中使用FTPClient进行文件上传与下载是一个常见的需求,特别是在需要远程管理文件或数据交换的场景下。本文将深入探讨如何使用Java中的FTPClient库实现这一功能,并提供详细的代码示例与解释。 ### FTPClient...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件的上传和下载。在Java编程中,实现FTP文件传输通常涉及到几个关键的知识点,包括FTP客户端库的使用、连接设置、文件操作以及异常...
以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...
在Java编程中,FTPClient是Apache Commons Net库中的一个组件,用于实现FTP(文件传输协议)功能,包括文件上传和下载。以下是对标题和描述中所提及知识点的详细解释: 1. **FTPClient**: FTPClient是Apache ...
文件上传的实现主要集中在`uploadFile`方法中。以下是关键步骤的解释: 1. **创建FTPClient对象**:`FTPClient ftp = new FTPClient();` 这是FTP客户端的起点,所有的FTP操作都通过这个对象进行。 2. **连接FTP...
文件上传是通过`FTPClient`的`storeFile`方法实现的。首先,我们需要打开一个本地文件流,然后调用`storeFile`方法,传入远程文件路径和本地文件流。 ```java File localFile = new File("localFilePath"); ...
本项目" FTPfuwuqi.rar "显然是一个Java实现的FTP客户端工具,能够实现基本的FTP文件上传和下载功能。 在Java中,`java.net`和`java.io`库提供了基础的网络通信功能,但通常我们使用Apache的Commons Net库来简化FTP...
在给定的标题和描述中,主要涉及了如何使用Java FTPClient进行文件上传和下载的操作。 首先,为了使用FTPClient,你需要在项目中引入相关的依赖库。如标签所示,至少需要两个JAR包:`commons-net-1.4.1.jar` 和 `...
在上传时,`FTPClient`的`storeFile()`方法会被用来将本地文件上传到服务器;而在下载时,可能使用`retrieveFile()`方法将服务器上的文件下载到本地。 此外,为了实现文件的滚动上传,可能使用了`JProgressBar`组件...
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...