• 大小: 258KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Java
  • 标签: Java  FTP  跨服务器  

资源简介

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

评论

共有 条评论