`
一百万个基佬
  • 浏览: 1236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

向ftp服务端上传文件和文件夹-20151201

阅读更多
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("上传文件出错");
 
  }
      } 
    } 
分享到:
评论

相关推荐

    FTP 服务端工具

    4、提供文件(文件夹)的下载、上传、删除、改名功能。 5、支持多用户访问,可以设置最大连接用户。 6、支持账户/密码访问和权限控制,同样支持匿名访问。 7、配置信息自动保存,下次不用重新输入,用户名清空自动...

    定时ftp上传文件

    每日定时上传当前运行系统日志服务,配置当前每日本地产生的数据文件所在路径。再配置上传的远程 ftp路径就可以使用。需要在服务端配置好ftp服务。

    超简单好用的ftp服务端软件免费绿色免安装

    1、提供文件(文件夹)的下载、上传、删除、改名功能。 2、支持多用户访问,可以设置最大连接用户。 3、支持账户/密码访问和权限控制,同样支持匿名访问。 4、配置信息自动保存,下次不用重新输入,用户名清空自动恢复...

    免费的ftp ftpshchgj

    3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小,永久...

    FTP上传下载工具

    3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小

    快速FTP服务端

    FTP开设助手将繁杂的IIS信息管理器配置简化为输入账号密码,当勾选匿名时,将直接进入该文件夹,带有访客监视,可实时查看是什么IP,什么时间来连接并下载上传文件,支持自定义端口号,开关等安全性防护。

    swing写的一个ftp客户端

    2、服务端的文件浏览、目录切换、新建文件、文件删除 3、客户端的文件上传 4、服务端的文件下载、以断点续传方式下载 5、下载进度显示 6、客户端文件夹递归上传 7、服务端文件夹递归下载 8、站点管理器 9、多...

    基于Android的模仿ftp的demo

    文件传输软件PC端,实现类似FTP的功能,支持中文文件名,可与Android客户端连接,实现目录查询,文件的上传和下载功能。 PC机远程控制手机端,通过TCP或UDP连接PC服务端,可查询PC端的目录,并将传回的文件、目录等...

    ftp简易后台上传工具.,站主必备cuteftp

    3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档; 5、智能升级检查,免费升级; 特色:不占内存,体积小,永久...

    FTP服务器小工具

    友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载;最大的特色是装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档,同时提供智能升级检查,免费升级。  笔者试用后最大的...

    FTP客户端和服务器端C#实现

    用c#完成的FTP客户端和服务端,支持文件的上传和下载,文件/文件夹重命名,图形化列表化显示文件详细信息。此程序在 visual stdio 2008 team system english 版本下调试完成,当然中文版的也可以运行成功。

    KODExplorer 芒果云-资源管理器

    - 文件文件夹权限修改(右键——属性,即可修改) - 对话框加入ico,对应任务栏 - 右键等部分菜单效果优化 - 远程下载加入进度条,下载速度等信息 ####fix bug:(bug解决和程序优化) - 下载前判断当前目录可写 - ...

    8UFTP工具服务端工具

    8UFTP工具分为8UFTP客户端工具和 8UFTP智能扩展...界面友好,操作简单,可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载。 智能升级检查,免费升级。建议同时安装8UFTP客户端和8UFTP智能扩展服务端工具。

    8uftp-v2.9.4.5.zip

    【软件特点】 1、用户可以利用它连接到FTP服务器上传、下载、查看...3、友好的界面可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传、下载; 4、装有8UFtp服务端软件的ftp站点还可以在线解压缩站点的RAR文档;

    KPS做PHP服务端与易语言客户端通信开源-易语言

    请将PHP服务文件下载后解压,将KPS文件夹上传至FTP根目录。 对应地址:http://域名 /KPS 此次开源主要是一些朋友希望用PHP 来实现像易语言服务端和客户端组件 发送接收效果,不仅可以24小时 服务在线,还省去了买...

    协通XT800服务端 v5.2.0.zip

    4.远程文件管理功能:管理远程电脑文件,支持上传、下载目录和文件,删除、创建、重命名等操作,可替代传统的FTP服务。 5.文件传输记录保存:无论采用哪种方式发送或接收了任何文件,文件传输记录中均保存了详细...

    8uftp_ftp上传工具

    8UFTP分为8UFTP客户端工具和 8UFTP智能扩展...界面友好,操作简单,可以管理多个ftp站点,使用拖拉即可完成文件或文件夹的上传下载。智能升级检查,免费升级。建议同时安装8UFTP客户端和8UFTP智能扩展服务端工具。

    FTPServerClient.zip

    FTP服务端和客户端:服务端支持添加、删除用户和该用户的工作目录;客户端支持文件上传、下载、删除,新建文件夹,删除文件夹。

    JFileUpload试用版:一款功能强大的文件上传控件

    JFileUpload 是一个客户端JAVA:trade_mark: 组件(Applet),它可以向web 或ftp 服务器上传文件和文件夹,它可以被整合到任何应用程序中。服务端的技术可以是JSP/Servlet、PHP、Coldfusion,CGI 或微软的ASP.前端提供...

Global site tag (gtag.js) - Google Analytics