import java.io.File;
import java.io.FileInputStream;
import java.util.Map;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import com.sitech.ismp.coll.busi.e2e.rule.AnalysisRule;
/**
* @author smj
* */
public class upToFtp extends AnalysisRule {
public upToFtp(Map<String, String> params) {
super(params);
// TODO Auto-generated constructor stub
}
private FTPClient ftp;
/**
* Description: 向FTP服务器上传文件夹
* @param path 上传到ftp服务器哪个路径下
* @param url FTP服务器地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @author smj
* @throws Exception
*/
private boolean connect(String path,String url,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(url,port);
ftp.login(username,password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
boolean flag4=ftp.changeWorkingDirectory(path);
logger.info("切换工作目录:"+flag4+"所要切换的路径:"+path);
result = true;
return result;
}
/**
*
* @param file 上传的文件或文件夹
* @throws Exception
*/
private boolean upload(File file) throws Exception{
if(file.isDirectory()){
//ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getPath());
String[] files = file.list();
logger.info("文件列表有:"+files.toString() );
for (int i = 0; i < files.length; i++) {
File file1 = new File(files[i]);
logger.info("我端的文件名:"+file1.getName() + "\t" );
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
File file2 = new File(files[i]);
logger.info("文件名:"+file2.getName() + "\t" );
FileInputStream input = new FileInputStream(file1);
boolean flag3= ftp.storeFile(file2.getName(), input);
logger.info("文件传输状态"+flag3);
input.close();
}
}
}else{
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
return true;
}
/**
* 移动指定文件或文件夹(包括所有文件和子文件夹)
*
* @param fromDir
* 要移动的文件或文件夹
* @param toDir
* 目标文件夹
* @throws Exception
*/
public void MoveFolderAndFileWithSelf(String from, String to) throws Exception {
try {
File dir = new File(from);
to += File.separator + dir.getName();
File moveDir = new File(to);
if(dir.isDirectory()){
if (!moveDir.exists()) {
moveDir.mkdirs();
}
}else{
File tofile = new File(to);
dir.renameTo(tofile);
return;
}
//System.out.println("dir.isDirectory()"+dir.isDirectory());
//System.out.println("dir.isFile():"+dir.isFile());
// 文件一览
File[] files = dir.listFiles();
if (files == null)
return;
// 文件移动
for (int i = 0; i < files.length; i++) {
System.out.println("文件名:"+files[i].getName());
if (files[i].isDirectory()) {
MoveFolderAndFileWithSelf(files[i].getPath(), to);
// 成功,删除原文件
files[i].delete();
}
File moveFile = new File(moveDir.getPath() + File.separator + files[i].getName());
// 目标文件夹下存在的话,删除
if (moveFile.exists()) {
moveFile.delete();
}
files[i].renameTo(moveFile);
}
//dir.delete();
} catch (Exception e) {
throw e;
}
}
protected void excute() {
logger.info("upToFtp start........");
try {
boolean flag1=connect("/ibnmsftp", "10.145.206.133", 21, "ibnmsftp", "ibnmsftp#2012");
logger.info("连接对端ftp状态为::"+flag1 + "\t" );
File file = new File("/iBNMSConsole/ismp/CRM_DATA/");
logger.info("文件路径为:"+file.getPath() + "文件名字为:" +file.getName()+ "\t" );
boolean flag= upload(file);
logger.info("文件上传状态为:"+flag + "\t" );
if(flag==true){
MoveFolderAndFileWithSelf("/iBNMSConsole/ismp/CRM_DATA/","/iBNMSConsole/ismp/CRM_HIS/");
}
logger.info("upToFtp end........");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
logger.info("上传文件出错");
}
}
}
分享到:
相关推荐
4、提供文件(文件夹)的下载、上传、删除、改名功能。 5、支持多用户访问,可以设置最大连接用户。 6、支持账户/密码访问和权限控制,同样支持匿名访问。 7、配置信息自动保存,下次不用重新输入,用户名清空自动...
每日定时上传当前运行系统日志服务,配置当前每日本地产生的数据文件所在路径。再配置上传的远程 ftp路径就可以使用。需要在服务端配置好ftp服务。
1、提供文件(文件夹)的下载、上传、删除、改名功能。 2、支持多用户访问,可以设置最大连接用户。 3、支持账户/密码访问和权限控制,同样支持匿名访问。 4、配置信息自动保存,下次不用重新输入,用户名清空自动恢复...
3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小,永久...
3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小
FTP开设助手将繁杂的IIS信息管理器配置简化为输入账号密码,当勾选匿名时,将直接进入该文件夹,带有访客监视,可实时查看是什么IP,什么时间来连接并下载上传文件,支持自定义端口号,开关等安全性防护。
2、服务端的文件浏览、目录切换、新建文件、文件删除 3、客户端的文件上传 4、服务端的文件下载、以断点续传方式下载 5、下载进度显示 6、客户端文件夹递归上传 7、服务端文件夹递归下载 8、站点管理器 9、多...
文件传输软件PC端,实现类似FTP的功能,支持中文文件名,可与Android客户端连接,实现目录查询,文件的上传和下载功能。 PC机远程控制手机端,通过TCP或UDP连接PC服务端,可查询PC端的目录,并将传回的文件、目录等...
3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小,永久...
友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载;最大的特色是装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档,同时提供智能升级检查,免费升级。 笔者试用后最大的...
用c#完成的FTP客户端和服务端,支持文件的上传和下载,文件/文件夹重命名,图形化列表化显示文件详细信息。此程序在 visual stdio 2008 team system english 版本下调试完成,当然中文版的也可以运行成功。
- 文件文件夹权限修改(右键——属性,即可修改) - 对话框加入ico,对应任务栏 - 右键等部分菜单效果优化 - 远程下载加入进度条,下载速度等信息 ####fix bug:(bug解决和程序优化) - 下载前判断当前目录可写 - ...
8UFTP工具分为8UFTP客户端工具和 8UFTP智能扩展...界面友好,操作简单,可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载。 智能升级检查,免费升级。建议同时安装8UFTP客户端和8UFTP智能扩展服务端工具。
【软件特点】 1、用户可以利用它连接到FTP服务器上传、下载、查看...3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档;
请将PHP服务文件下载后解压,将KPS文件夹上传至FTP根目录。 对应地址:http://域名 /KPS 此次开源主要是一些朋友希望用PHP 来实现像易语言服务端和客户端组件 发送接收效果,不仅可以24小时 服务在线,还省去了买...
4.远程文件管理功能:管理远程电脑文件,支持上传、下载目录和文件,删除、创建、重命名等操作,可替代传统的FTP服务。 5.文件传输记录保存:无论采用哪种方式发送或接收了任何文件,文件传输记录中均保存了详细...
8UFTP分为8UFTP客户端工具和 8UFTP智能扩展...界面友好,操作简单,可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传下载。智能升级检查,免费升级。建议同时安装8UFTP客户端和8UFTP智能扩展服务端工具。
FTP服务端和客户端:服务端支持添加、删除用户和该用户的工作目录;客户端支持文件上传、下载、删除,新建文件夹,删除文件夹。
JFileUpload 是一个客户端JAVA:trade_mark: 组件(Applet),它可以向web 或ftp 服务器上传文件和文件夹,它可以被整合到任何应用程序中。服务端的技术可以是JSP/Servlet、PHP、Coldfusion,CGI 或微软的ASP.前端提供...