/**
* 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
*/
public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(path);
ftp.storeFile(filename, input);
input.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
/**
* 读取配置 上传文件
* @param fileName
* @param localPath
* @return
*/
public static boolean UpLoadFromDisk(String fileName,String localPath){
boolean flag=false;
try {
Properties p = new Properties();
String filePath = "com/sgcc/evoms/portservice/util/FTPServer.properties";
try {
p.load(Common.class.getClassLoader().getResourceAsStream(filePath));
} catch (IOException e) {
logger.error("读取 com/sgcc/evoms/portservice/util/FTPServer.properties文件出错 :"+e);
}
String url = p.getProperty("URL").trim();
int port = Integer.parseInt(p.getProperty("PORT").trim());
String username = p.getProperty("USERNAME").trim();
String password = p.getProperty("PASSWORD").trim();
String path = p.getProperty("PATH").trim();
FileInputStream in=new FileInputStream(new File(localPath+fileName));
flag = Common.uploadFile(url, port, username,
password, path, fileName, in);
System.out.println(flag);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return flag;
}