-
import org.apache.commons.net.ftp.FTPClient;
-
import org.mogujie.recruit.web.exception.BusinessException;
-
import org.slf4j.Logger;
-
import org.slf4j.LoggerFactory;
-
-
import java.io.File;
-
import java.io.FileInputStream;
-
import java.io.IOException;
-
import java.io.InputStream;
-
-
/**
-
*/
-
public class FtpUtil {
-
private static final Logger logger = LoggerFactory.getLogger(FtpUtil.class);
-
-
/**
-
* 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 *
-
* @Version 1.0
-
*/
-
public static void uploadFile(String url,// FTP服务器hostname
-
int port,// FTP服务器端口
-
String username, // FTP登录账号
-
String password, // FTP登录密码
-
String path, // FTP服务器保存目录
-
String filename, // 上传到FTP服务器上的文件名
-
InputStream input // 输入流
-
) {
-
FTPClient ftp = new FTPClient();
-
ftp.setControlEncoding("GBK");
-
try {
-
ftp.connect(url, port);// 连接FTP服务器
-
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
-
Boolean result = ftp.login(username, password);// 登录
-
if(!result){
-
ftp.disconnect();
-
throw new BusinessException("ftp.login 失败");
-
}
-
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
-
ftp.makeDirectory(path);
-
ftp.changeWorkingDirectory(path);
-
ftp.enterLocalPassiveMode();//Switch to passive mode
-
result = ftp.storeFile(filename, input);
-
if(!result){
-
ftp.disconnect();
-
String logStr = String.format("ftp.storeFile失败 ===> ReplyCode:%d ReplyString:%s",
-
ftp.getReplyCode(), ftp.getReplyString());
-
throw new BusinessException(logStr);
-
}
-
result = ftp.logout();
-
if(!result){
-
ftp.disconnect();
-
throw new BusinessException("ftp.logout 失败");
-
}
-
} catch (IOException e) {
-
logger.error("new IOException:" + e.getMessage(), e);
-
throw new BusinessException("new IOException:" + e.getMessage(), e);
-
} finally {
-
if (ftp.isConnected()) {
-
try {
-
ftp.disconnect();
-
} catch (IOException ioe) {
-
logger.error("new IOException:", ioe);
-
}
-
}
-
try {
-
input.close();
-
}catch (IOException ex){
-
logger.error("new IOException:", ex);
-
}
-
}
-
}
-
-
/**
-
* 将本地文件上传到FTP服务器上 *
-
*/
-
public static void upLoadFromProduction(String url,// FTP服务器hostname
-
int port,// FTP服务器端口
-
String username, // FTP登录账号
-
String password, // FTP登录密码
-
String path, // FTP服务器保存目录
-
String filename, // 上传到FTP服务器上的文件名
-
String orginfilename // 输入流文件名
-
) {
-
try {
-
FileInputStream in = new FileInputStream(new File(orginfilename));
-
uploadFile(url, port, username, password, path, filename, in);
-
} catch (Exception e) {
-
logger.error("upLoadFromProduction error:", e);
-
}
-
}
-
-
}
阅读(1284) | 评论(0) | 转发(0) |