资源简介
编写了java如何使用ftp上传下载文件以及文件夹:其中下载文件使用了jdk的api和apache的api两种方式实现;下载文件,使用了jdk的api方式实现。
仅作参考,代码已测试。

代码片段和文件信息
package ftpupload;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
/**
* 使用apache api ftp上传、下载文件
*
* @author Administrator
*
*/
public class MyApacheFtpUpload {
private static FTPClient ftpClient = new FTPClient();
private static String encoding = System.getProperty(“file.encoding“);
// 获取服务器连接
private static boolean getConnection(String ip int port String userName
String password) {
try {
// 连接ftp服务器
ftpClient.connect(ip);
// 登录
ftpClient.login(userName password);
//为了下载中文名文件正常,客户端需如下设置,因为:
/**
* 1.首先apache-FtpServer 默认使用的是utf-8
* 查看FtpServerProtocolCodecFactory源码可知 可知它的encode
* decode 都是使用的是utf-8.
* 2.ftp命令走的是control connection 所以客户端要使用 ftpClient.setControlEncoding(“UTF-8“);
*/
ftpClient.setControlEncoding(“utf-8“);
// 获取连接状态
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
throw new Exception(“连接服务器失败!“);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 上传文件
*
* @param remotePath
* 远程文件名
* @param localPath
* 本地文件名
*/
private static void uploadFile(String remotePath String localPath) {
FileInputStream input;
try {
input = new FileInputStream(localPath);
//以二进制形式上传
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//为了上传中文文件名成功,需new String(remotePath.getBytes(encoding)“iso-8859-1“)
boolean flag = ftpClient.storeFile(new String(remotePath.getBytes(encoding)“iso-8859-1“) input);
if (flag) {
System.out.println(“上传成功“);
} else {
System.out.println(“上传失败“);
}
input.close();
ftpClient.logout();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 下载FTP服务器文件
*
* @param remoteFileName
* @param localPath
*/
private static void downloadFile(String remoteFileName String localPath) {
try {
FTPFile[] files = ftpClient.listFiles();
for (FTPFile ftpFile : files) {
if (ftpFile.getName().equals(remoteFileName)) {
FileOutputStream out = new FileOutputStream(localPath
+ ftpFile.getName());
//为了下载中文文件名成功,需new String(ftpFile.getName().getBytes(encoding)“iso-8859-1“)
ftpClient.retrieveFile(new String(ftpFile.getName().getBytes(encoding) “ISO-8859-1“) out);
out.clo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-11 10:16 ftp上传、下载文件及目录\
目录 0 2014-03-10 10:48 ftp上传、下载文件及目录\FTP上传、下载文件\
文件 4454 2014-03-07 17:59 ftp上传、下载文件及目录\FTP上传、下载文件\MyApacheFtpUpload.java
文件 4447 2014-03-07 15:24 ftp上传、下载文件及目录\FTP上传、下载文件\MyFtpUpload.java
文件 4398 2014-03-10 10:46 ftp上传、下载文件及目录\FTP上传、下载文件\ReviewFTP.java
文件 47104 2014-03-07 14:31 ftp上传、下载文件及目录\ftp上传、下载实例.wps
目录 0 2014-03-11 10:16 ftp上传、下载文件及目录\ftp上传、下载文件夹(jdk)\
文件 8229 2014-03-11 10:02 ftp上传、下载文件及目录\ftp上传、下载文件夹(jdk)\JDKUploadFileFolder.java
文件 7134 2014-03-10 14:41 ftp上传、下载文件及目录\ftp命令.wps
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论