資源簡介
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
評論
共有 條評論