资源简介
Java 程序实现的 FTP 跨服务器文件上传下载功能。
代码片段和文件信息
package com.ftp.util;
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.FTPReply;
/**
* FTP服务器工具类
*
* @author 褚为标
* @version 1.0
* @date 2013-11-18
*/
public class FTPUtil {
/**
* 上传文件至FTP服务器
*
* @param url
* 服务器IP地址
* @param port
* 服务器端口
* @param userName
* 用户登录名
* @param password
* 用户登录密码
* @param storePath
* 服务器文件存储路径
* @param fileName
* 服务器文件存储名称
* @param is
* 文件输入流
* @return
* true:上传成功
*
* false:上传失败
*/
public static boolean storeFile (String url int port String userName String password String storePath String fileName InputStream is) {
boolean result = false;
FTPClient ftp = new FTPClient();
try {
// 连接至服务器,端口默认为21时,可直接通过URL连接
ftp.connect(url port);
// 登录服务器
ftp.login(userName password);
// 判断返回码是否合法
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
// 不合法时断开连接
ftp.disconnect();
// 结束程序
return result;
}
// 设置文件操作目录
ftp.changeWorkingDirectory(storePath);
// 设置文件类型,二进制
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// 设置缓冲区大小
ftp.setBufferSize(3072);
// 上传文件
result = ftp.storeFile(fileName is);
// 关闭输入流
is.close();
// 登出服务器
ftp.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 判断输入流是否存在
if (null != is) {
// 关闭输入流
is.close();
}
// 判断连接是否存在
if (ftp.isConnected()) {
// 断开连接
ftp.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
/**
* 从FTP服务器下载文件至本地
*
* @param url
* 服务器IP地址
* @param port
* 服务器端口
* @param userName
* 用户登录名
* @param password
* 用户登录密码
* @param remotePath
* 服务器文件存储路径
* @param fileName
* 服务器文件存储名称
* @param localPath
* 本地文件存储路径
* @return
* true:下载成功
*
* false:下载失败
*/
public static boolean retrieveFile (String url int port String userName String password String remotePath String fileName String localPath) {
boolean result = false;
FTPClient ftp = new FTPClient();
OutputStream os = null;
try {
// 连接至服务器,端口默认为21时,可直接通过URL连接
ftp.connect(url port);
// 登录服务器
ftp.login(userName password);
// 判断返回码是否合法
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
// 不合法时断开连接
ftp.disconnect();
// 结束程序
return result;
}
// 设置文件操作目录
ftp.changeWorkingDirectory(remotePath);
// 设置文件类型,二进制
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// 设置缓冲区大小
ftp.setBufferSize(3072);
// 设置字符编码
ftp.setControlEncoding(“UTF-8“);
// 构造本地文件对象
File localFile = new File(localPath + “/“ + fileName
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 363 2013-11-19 13:47 FTP\.classpath
文件 379 2013-11-19 13:46 FTP\.project
目录 0 2013-11-19 13:48 FTP\.settings\
文件 629 2013-11-19 13:46 FTP\.settings\org.eclipse.jdt.core.prefs
目录 0 2013-11-19 13:48 FTP\bin\
目录 0 2013-11-19 13:48 FTP\bin\com\
目录 0 2013-11-19 13:48 FTP\bin\com\ftp\
目录 0 2013-11-19 13:48 FTP\bin\com\ftp\util\
文件 4490 2013-11-19 13:47 FTP\bin\com\ftp\util\FTPUtil.class
文件 678 2013-11-19 13:47 FTP\bin\com\ftp\util\RandomUUID.class
目录 0 2013-11-19 13:48 FTP\lib\
文件 280983 2013-11-19 13:47 FTP\lib\commons-net-3.3.jar
目录 0 2013-11-19 13:48 FTP\src\
目录 0 2013-11-19 13:48 FTP\src\com\
目录 0 2013-11-19 13:48 FTP\src\com\ftp\
目录 0 2013-11-19 13:48 FTP\src\com\ftp\util\
文件 5288 2013-11-19 13:47 FTP\src\com\ftp\util\FTPUtil.java
文件 419 2013-11-19 13:47 FTP\src\com\ftp\util\RandomUUID.java
相关资源
- java基于socket/server的多线程聊天室程序
- Java课程设计-五子棋226111
- java面向对象 纸牌 含详细注释
- 非常简单实用的jsp实现树型菜单,不
- JAVA 控制台 简单的图书管理系统
- SM4java实现
- socket的应用 计算机网络 java版
- jsp+javabean+servlet库存管理系统
- MongoDB-Java驱动API
- Java导出Excel(适合分页_大数据量)
- java运动会分数统计系统课程设计
- 打字训练软件(Java)
- 解决微信扫描二维码APK问题
- Java,使用UDP协议实现CS通信
- mysql-connector-java-5.1.10-bin.jar
- Thinking in java第四版源码 + 书中net.mi
- ftp4j-1.7.2.jar
- DES加密算法及其在Java中的实现
- JAVA 商品秒杀demo
- apriori算法求频繁项集和关联规则 mv
- 在线选课系统 java servlet+ jsp+mysql+css
- Java微信支付-微信企业付款到个人
- Java DFA算法实现敏感词、广告词过滤
- 音频分割程序Java语言制作
- Java鹰眼轨迹批量上传
- Java实现五子棋
- 设计模式课程设计---使用5个以上不同
- Java QQ类图
- 基于java Swing的报刊管理系统
- javaEE 网上在线销售系统个人项目
评论
共有 条评论