/**
* @author wuling
* @2008-12
*/
import java.io.File;
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 SeforgeFtpUtils implements ISeforgeFtpUtils {
/**
* Description: 向FTP服务器上传文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param path FTP服务器保存目录
* @param filename 上传到FTP服务器上的文件名
* @param input 输入流
* @return 成功返回true,否则返回false
*/
public boolean uploadFile(String url, int port, String username,
String password, String path, String filename, InputStream input) {
// 初始表示上传失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = new FTPClient();
try {
int reply;
// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.connect(url, port);
// 登录ftp
ftp.login(username, password);
// 看返回的值是不是230,如果是,表示登陆成功
reply = ftp.getReplyCode();
// 以2开头的返回值就会为真
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
// 转到指定上传目录
ftp.changeWorkingDirectory(path);
// 将上传文件存储到指定目录
ftp.storeFile(filename, input);
// 关闭输入流
input.close();
// 退出ftp
ftp.logout();
// 表示上传成功
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
/**
* Description: 从FTP服务器下载文件
* @param url FTP服务器hostname
* @param port FTP服务器端口
* @param username FTP登录账号
* @param password FTP登录密码
* @param remotePath FTP服务器上的相对路径
* @param fileName 要下载的文件名
* @param localPath 下载后保存到本地的路径
* @return
*/
public boolean downFile(String url, int port, String username,
String password, String remotePath, String fileName,
String localPath) {
// 初始表示下载失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = new FTPClient();
try {
int reply;
// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.connect(url, port);
// 登录ftp
ftp.login(username, password);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
} // 转到指定下载目录
ftp.changeWorkingDirectory(remotePath);
// 列出该目录下所有文件
FTPFile[] fs = ftp.listFiles();
// 遍历所有文件,找到指定的文件
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
// 根据绝对路径初始化文件
File localFile = new File(localPath + "/" + ff.getName());
// 输出流
OutputStream is = new FileOutputStream(localFile);
// 下载文件
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
// 退出ftp
ftp.logout();
// 下载成功
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
}
分享到:
相关推荐
以上就是关于"java实现ftp上传jar包"的相关知识点,涵盖了FTP协议、相关库的使用、JAR文件的处理以及基本的Java FTP操作。在实际项目中,你可能还需要考虑其他因素,如连接超时、重试策略、文件权限管理等。
为了在Java中实现FTP文件的上传和下载功能,你需要使用特定的库,其中一个常用的库就是Apache Commons Net。这个库提供了丰富的FTP客户端功能,使得开发者能够方便地与FTP服务器进行交互。 Apache Commons Net是一...
标题中的“利用commons-net包实现ftp上传下载例子”是指通过Apache Commons Net库来实现FTP(File Transfer Protocol)的上传和下载功能。Apache Commons Net是Apache软件基金会开发的一个Java库,它提供了多种网络...
例如,FTPClient可以方便地进行FTP文件上传和下载,而SMTPClient则可以帮助实现邮件发送。 5. Apache Commons Lang: 这是Java语言功能的扩展,提供了字符串操作、日期时间处理、枚举工具、数学运算等类。例如,...
在本文中,我们将深入探讨如何使用`org.apache.commons.net.ftp.FTPClient`包来实现简单的文件下载功能。这个过程涉及到几个关键步骤,包括连接到FTP服务器、登录、设置传输模式、下载文件以及断开连接。 首先,你...
库提供了FTPClient、FTPSSLClient、FTPSSLSocketFactory等类,可以实现FTP的连接、登录、文件上传、下载、删除、重命名等操作,并且支持主动和被动模式,以及SSL/TLS加密。 3. **Telnet功能** Telnet协议在commons...
总结来说,通过Apache Commons Net库,我们可以轻松地在Android应用中实现FTP功能,进行文件的上传、下载、目录操作等,从而实现与远程服务器的数据交换。不过,注意在实际开发中,应根据具体需求选择合适的FTP操作...
这个"JAVA-commons-jar包"包含的13个jar包很可能是Apache Commons的不同模块,每个模块专注于特定的任务,从而帮助开发者更高效地编写代码。下面我们将逐一探讨这些模块及其主要功能。 1. **commons-lang**: 提供了...
本文将详细介绍如何使用Java实现简单的FTP文件上传与下载功能,并基于提供的"ftpLoadDown.jar"库和"使用方法.txt"来解析相关知识。 首先,我们需要了解FTP的基础知识。FTP是一种应用层协议,它依赖于TCP/IP协议栈,...
FTP文件上传jar包是Java开发中用于实现文件传输协议(FTP)操作的重要工具。这个压缩包包含了一系列必要的jar包,这些库提供了FTP客户端功能,使得开发者可以方便地在应用程序中进行文件的上传和下载。主要涉及的jar...
Java FTP所需的jar包主要包括`commons-net-3.6.jar`和`jsch-0.1.49.jar`。这两个库在Java编程中扮演着重要角色,帮助开发者实现FTP(File Transfer Protocol)功能。 首先,`commons-net-3.6.jar`是Apache Commons ...
开发者可以借助它轻松实现文件的上传、下载和其他FTP功能,同时也可以利用库中的其他工具类来处理各种网络协议。在实际开发中,合理利用Apache Commons Net能显著提高代码效率,降低网络编程的复杂性。
FTP是一种用于在互联网上传输文件的标准协议,它的主要功能包括下载、上传文件,以及管理远程服务器上的文件。Apache Commons Net库提供了一套完整的API,使得Java程序员可以方便地实现这些功能,而无需关心底层的...
"commons-all" 压缩包包含了 Apache Commons 项目的多个组件的 JAR 文件,这为开发者提供了一站式的 Apache Commons 库下载。 在Java开发中,Apache Commons 的各种 JAR 包被广泛使用,因为它们提供了高效且易于...
"commons 相关jar包 全集"很可能包含了一系列 Apache Commons 项目的 jar 文件,这些文件可以用于增强你的 Java 应用程序的功能。 Apache Commons 项目包含了多个子项目,每个子项目都专注于特定的领域,例如数据...
上传了收集的最新的 commons-io-2.4.jar 包 和 commons-net-3.3.jar 以及 FTP java调用例子。net 包是一个用于操作Internet基础协议(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP,以及SMTP)的底层API。Net包...
这篇博客“Java实现FTP上传与下载”可能详细介绍了如何利用Java来实现FTP客户端的功能,包括文件的上传和下载。这里我们将深入探讨Java中实现FTP操作的核心知识点。 首先,Java通过`commons-net`库提供了对FTP的...
Java FTP文件上传下载是Java开发中常见的网络编程任务,它涉及到Java语言的Socket编程和FTP(File Transfer Protocol)协议的应用。FTP是一种用于在网络上进行文件传输的标准协议,它允许客户端从服务器上获取文件...
本文将详细讲解如何在Android应用中实现FTP的文件上传和下载功能,同时支持对文件夹的操作。 首先,我们需要了解FTP的基本概念。FTP是一种基于TCP的应用层协议,用于在网络上进行文件的传输。它定义了两个主要的...
在学习和使用这些 jar 包时,建议先了解每个模块的主要功能,根据实际需求选择合适的组件,然后通过查阅官方文档或相关教程,掌握其使用方法。同时,注意版本兼容性问题,确保所使用的 Apache Commons 组件与当前...