package util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;
public class FTPUtil {
private static Logger logger = Logger.getLogger(FTPUtil.class);
public static final String ftp_Url=ConfigProperties.getPropertiesValue("ftp_Url");
public static final String ftp_port=ConfigProperties.getPropertiesValue("ftp_port");
public static final String ftp_path=ConfigProperties.getPropertiesValue("ftp_path");
public static final String ftp_user=ConfigProperties.getPropertiesValue("ftp_user");
public static final String ftp_pwd=ConfigProperties.getPropertiesValue("ftp_pwd");
private static String ftpUrlXML=ConfigProperties.getValue("ftpUrlXML")+getYYYYMM()+"/";
public static final String ftp_Url_sh=ConfigPropertiesSH.getPropertiesValue("ftp_Url_sh");
public static final String ftp_port_sh=ConfigPropertiesSH.getPropertiesValue("ftp_port_sh");
public static final String ftp_path_sh=ConfigPropertiesSH.getPropertiesValue("ftp_path_sh");
public static final String ftp_user_sh=ConfigPropertiesSH.getPropertiesValue("ftp_user_sh");
public static final String ftp_pwd_sh=ConfigPropertiesSH.getPropertiesValue("ftp_pwd_sh");
private static String ftpUrlXML_sh=ConfigPropertiesSH.getValue("ftpUrlXML_sh")+getYYYYMM()+"/";
/**
* Description: 向FTP服务器上传文件
*/
public static boolean uploadFile(String filename, InputStream input) {
System.out.println("FTPUtil.uploadFile()>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user, ftp_pwd);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(filename);
ftp.enterLocalPassiveMode();
ftp.storeFile(filename, input);
logger.info(filename+"上传至:"+ftp_Url+ftp_path);
input.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("success*****************************:"+success);
System.out.println("FTPUtil.uploadFile()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<<<<<<<");
return success;
}
/**
* Description: 向FTP服务器上传文件(搜狐)
*/
public static boolean uploadFileSH(String filename, InputStream input) {
System.out.println("FTPUtil.uploadFileSH()>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user_sh, ftp_pwd_sh);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(filename);
ftp.enterLocalPassiveMode();
System.out.println("changeWorkingDirectory**************************:"+filename);
ftp.storeFile(filename, input);
System.out.println(filename+"已上传到ftp上*****************************");
input.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("FTPUtil.uploadFileSH():success*****************************:"+success);
System.out.println("FTPUtil.uploadFileSH()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<<<<<<<");
return success;
}
/**
* Description: 向FTP服务器创建文件夹(芒果)
*/
public static boolean createDirectoryAndMovieTs(String directory, String ts) {
System.out.println("FTPUtil.createDirectoryAndMovieTs()>>>>>>>>>>>>>>start>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user, ftp_pwd);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
//创建文件夹
ftp.changeWorkingDirectory("/"+ftpUrlXML);
ftp.makeDirectory(directory);
System.out.println("在目标服务器上成功建立了文件夹: /" +ftpUrlXML+ directory);
//移动ts文件
ftp.rename("/"+ftpUrlXML+ts,"/"+ftpUrlXML+directory+"/"+ts);
System.out.println("在目标服务器上移动文件"+ts+"到文件夹/" +ftpUrlXML+ directory+"下");
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("success*****************************:"+success);
System.out.println("FTPUtil.createDirectoryAndMovieTs()<<<<<<<<<<<<<<<end<<<<<<<<<<<<");
return success;
}
/**
* Description: 向FTP服务器创建文件夹(搜狐)
*/
public static boolean createDirectoryAndMovieTsSH(String directory, String ts) {
System.out.println("FTPUtil.createDirectoryAndMovieTsSH()>>>>>>>>>>>>>>start>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user_sh, ftp_pwd_sh);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
//创建文件夹
ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);
ftp.makeDirectory(directory);
System.out.println("在目标服务器上成功建立了文件夹: /" +ftpUrlXML_sh+ directory);
//移动ts文件
ftp.rename("/"+ftpUrlXML_sh+ts,"/"+ftpUrlXML_sh+directory+"/"+ts);
System.out.println("在目标服务器上移动文件"+ts+"到文件夹/" +ftpUrlXML_sh+ directory+"下");
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("FTPUtil.createDirectoryAndMovieTsSH():success*****************************:"+success);
System.out.println("FTPUtil.createDirectoryAndMovieTsSH()<<<<<<<<<<<<<<<end<<<<<<<<<<<<");
return success;
}
/**
* Description: 判断ftp上是否有该视频
* @author xiewenchao
* @return 成功返回true,否则返回false
*/
public static boolean haveTs(String str_ts) {
System.out.println("FTPUtil.haveTs()>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user, ftp_pwd);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
if (!ftp.changeWorkingDirectory("/"+ftpUrlXML)){
ftp.makeDirectory("/"+ftpUrlXML);
ftp.changeWorkingDirectory("/"+ftpUrlXML);
System.out.println("新创建的当月文件夹进入目录成功:"+"/"+ftpUrlXML);
}else{
ftp.changeWorkingDirectory("/"+ftpUrlXML);
System.out.println("直接当月文件夹,没创建进入目录成功:"+"/"+ftpUrlXML);
}
System.out.println("*************changeWorkingDirectory_mg***:/"+ftpUrlXML);
ftp.enterLocalPassiveMode();
String[] list = ftp.listNames();
System.out.println("*************list***"+list.length);
for(int i=0 ;i<list.length;i++){
if(str_ts.equals(list[i])){
success = true;
}
}
System.out.println("success*****************************:"+success);
ftp.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("FTPUtil.haveTs()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<");
return success;
}
/**
* Description: 判断ftp上是否有该视频
* @author xiewenchao
* @return 成功返回true,否则返回false
*/
public static boolean haveTsSH(String str_ts) {
System.out.println("FTPUtil.haveTsSH()>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>");
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftp_user_sh, ftp_pwd_sh);//登录
System.out.println("***********************ftp_user_sh="+ftp_user_sh+",ftp_pwd_sh="+ftp_pwd_sh+",ftp_Url_sh="+ftp_Url_sh+",ftp_port_sh="+ftp_port_sh);
reply = ftp.getReplyCode();
System.out.println("****************************"+reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.out.println("****************************"+success);
return success;
}
if (!ftp.changeWorkingDirectory("/"+ftpUrlXML_sh)){
ftp.makeDirectory("/"+ftpUrlXML_sh);
ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);
System.out.println("新创建的当月文件夹进入目录成功:"+"/"+ftpUrlXML_sh);
}else{
ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);
System.out.println("直接当月文件夹,没创建进入目录成功:"+"/"+ftpUrlXML_sh);
}
System.out.println("*************changeWorkingDirectory_sh***:/"+ftpUrlXML_sh);
ftp.enterLocalPassiveMode();
String[] list = ftp.listNames();
System.out.println("*************list***"+list.length);
for(int i=0 ;i<list.length;i++){
if(str_ts.equals(list[i])){
success = true;
System.out.println("*************success***"+success);
}
}
System.out.println("FTPUtil.haveTsSH():success*****************************:"+success);
ftp.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
System.out.println("FTPUtil.haveTsSH()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<");
return success;
}
/**
* 获取年月:
*/
public static String getYYYYMM(){
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) + 1;
String _month= "";
if(month<10){
_month="0"+month;
}else{
_month = ""+month;
}
return year+_month;
}
/**
* @param args
*/
public static void main(String[] args) {
//FTPUtil.createDirectory("SOHU201611211111");
}
}
读取properties.properties文件相关属性 ConfigProperties.class
package util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
public class ConfigProperties {
public static String getValue(String key){
String value = null;
String propertiesValue = getPropertiesValue(key);
if(propertiesValue!=null&&!"".equals(propertiesValue)){
value = propertiesValue;
}
return value;
}
public static String getPropertiesValue(String key) {
Properties props = new Properties();
try {
props.load(ConfigProperties.class.getResourceAsStream("properties.properties"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return props.getProperty(key);
}
}
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
public class ConfigProperties {
public static String getValue(String key){
String value = null;
String propertiesValue = getPropertiesValue(key);
if(propertiesValue!=null&&!"".equals(propertiesValue)){
value = propertiesValue;
}
return value;
}
public static String getPropertiesValue(String key) {
Properties props = new Properties();
try {
props.load(ConfigProperties.class.getResourceAsStream("properties.properties"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return props.getProperty(key);
}
}