`
一百万个基佬
  • 浏览: 1324 次
  • 性别: 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("上传文件出错");
 
  }
      } 
    } 
分享到:
评论

相关推荐

    QT ftp上传下载,创建文件夹,删除目录

    本教程将深入讲解如何使用QT进行FTP(File Transfer Protocol)操作,包括文件的上传、下载、创建文件夹以及删除目录。 FTP是一种基于TCP协议的应用层协议,用于在Internet上进行文件传输。QT库提供了...

    Ftp服务端程序

    FTP(File Transfer Protocol)服务端程序是用于在网络上进行文件传输的一种标准协议的实现,它允许用户从一台计算机(客户端)向另一台计算机(服务器)上传或下载文件。在这个场景中,我们讨论的是一个专为初学者...

    简单实用的ftp服务端

    FTP(File Transfer Protocol)...总结,通过这个“简单实用的ftp服务端”压缩包,你可以快速搭建一个本地FTP服务器,实现文件的便捷共享和管理。在实际应用中,务必注意安全性和性能优化,以确保FTP服务稳定可靠。

    一个单文件绿色且功能强大的FTP服务器

    FTP服务器允许远程用户连接到本地计算机,上传或下载文件。在这个场景下,"ftpserv.exe"就是这个FTP服务器的主程序。用户只需双击运行,服务器即启动,无需复杂的配置过程。这种绿色软件的优势在于,它可以随时随地...

    超小的FTP服务端工具

    `readme.txt`文件通常包含软件的使用说明和注意事项,帮助用户更好地理解和操作这款FTP服务端工具。 配置FTP服务器的过程简单明了: 1. **启动服务**:首先,找到并双击运行`FtpServer.exe`,程序启动后会显示一个...

    定时ftp上传文件

    在IT行业中,定时FTP上传文件是一项常见的自动化任务,尤其对于监控、数据分析或者备份等场景尤为重要。这个任务涉及到几个关键知识点,下面将详细讲解。 首先,我们要理解“定时”这一概念。在计算机领域,定时...

    windows版的ftp服务端部署

    本篇文章将详细讲解如何在Windows环境中设置和配置FTP服务端,以Serv-U FTP Server为例。 一、Serv-U FTP Server简介 Serv-U是一款功能强大的FTP服务器软件,支持多平台,包括Windows。它提供了安全、高效且易于...

    FTP 服务端工具

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

    FTP上传下载,本地同步服务器文件

    FTP服务端程序是运行在服务器上的软件,负责接收来自客户端的FTP请求,处理文件传输操作,并管理用户的权限。常见的FTP服务器软件有vsftpd、ProFTPD和FileZilla Server等。这些服务端程序通常需要配置,例如设置监听...

    Ftp服务搭建 服务端

    搭建FTP服务端对于需要共享文件或者远程管理文件系统的场景至关重要。本篇文章将详细讲解如何搭建FTP服务端。 首先,我们需要一个FTP服务器软件。在提供的文件名列表中,我们看到了"ftpserver.exe",这可能是一个...

    监控本地目录并同步FTP服务器的服务

    标题中的“监控本地目录并同步FTP服务器的服务”指的是一个基于C#编程语言开发的应用程序,其主要功能是实时监测用户指定的本地文件夹,并在文件发生变化(如新增、修改或删除)时,自动将这些变更同步到FTP(File ...

    java实现本地按照FTP服务器的目录结构创建文件夹下载文件

    在Java编程环境中,FTP(File Transfer Protocol)是一个广泛使用的协议,用于在本地计算机和远程服务器之间传输文件。本文将深入探讨如何使用Java实现一个FTP客户端,以根据服务器的目录结构在本地创建文件夹并下载...

    用c++写的ftp服务器端

    2. **命令解析**:服务器接收客户端发送的FTP命令,如`USER`(认证用户)、`PASS`(密码)、`LIST`(列出目录内容)、`RETR`(下载文件)、`STOR`(上传文件)等,并执行相应的操作。 3. **数据传输**:FTP使用控制...

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

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

    一个简单方便的服务端ftp搭建工具

    总结, Serv-U作为一款服务端FTP搭建工具,提供了便捷的服务器配置和管理方式,无论对个人还是企业,都能满足其文件共享和传输的需求。通过合理配置和安全设置,用户可以高效、安全地使用FTP服务。

    安卓APP上传图片到服务端并保存到电脑文件夹

    最后,服务端保存的图片文件可以在Web界面或者通过FTP等工具下载到电脑文件夹中。 总结,这个示例涵盖了Android应用如何选择图片、上传图片,以及服务端如何接收并保存图片的关键步骤。在实际项目中,可能还需要...

    绿色版FTP服务器

    1. 网站内容更新:Web开发者可以通过FTP上传网页和相关文件到服务器。 2. 文件共享:企业内部可以设置FTP服务器,方便员工之间共享文件。 3. 远程协作:团队成员可以通过FTP交换项目文件,进行远程协作。 4. 自动...

    FTP服务器搭建+FTP客户端安装包

    它允许用户从一台计算机(FTP客户端)向另一台计算机(FTP服务器)上传、下载或管理文件。本教程将详细介绍如何搭建FTP服务器以及安装FTP客户端。 首先,我们要搭建FTP服务器。 Serv-U是一款功能强大的FTP服务器...

    我的世界(MC) 1.12.2 服务端 forge

    - 在Forge服务端运行后,你可以通过FTP客户端上传模组到`mods`文件夹,Forge会自动处理模组加载。 - 配置服务端模组需修改`server.properties`或创建`modpacks`文件夹,具体操作需参考模组文档。 三、Forge的应用...

    2款轻量FTP服务器软件

    4. **日志记录**:FTP服务器通常会记录用户的登录、上传和下载活动,有助于监控服务器的使用情况和排查问题。 5. **文件权限控制**:根据用户角色分配不同的文件操作权限,如读、写、执行等。 6. **虚拟目录**:...

Global site tag (gtag.js) - Google Analytics