<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 167,  comments - 30,  trackbacks - 0

    package com.sinovatech.unicom.efb.common;


    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.SocketException;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;

    /**
     *
     * 目的:FTP文件類
     * <br/>
     *
     * FTP上傳文件、下載文件
     *
     * *
     */
    public class FTPUtil {
     private static final Log log = LogFactory.getLog(FTPUtil.class);

     public static int download(String ip,int port,String userName,String password,FileFilter filter,String localFilePath) throws SocketException, IOException{
      return download(ip, port, userName, password, null,filter, localFilePath);
     }
     
     public static int download(String ip,int port,String userName,String password,String ftpPath,FileFilter filter,String localFilePath) throws SocketException, IOException{
      FTPClient ftp = new FTPClient();
      int i=0;
       try {
        // 不為空連接 通過IP 和端口
        ftp.connect(ip, port);
        // 登陸
        if (ftp.login(userName, password)) {
         ftp.enterLocalPassiveMode();
         // 獲取FTP登陸目錄下的所有文件
         if(ftpPath!=null){
          if(!ftp.changeWorkingDirectory(ftpPath)){
           throw new RuntimeException("找不到該目錄:"+ftpPath);
          }
         }
         FTPFile[] files = ftp.listFiles();
         for (FTPFile file : files) {
          String fileName = file.getName();
          if (filter.accept(fileName)) {
           BufferedOutputStream out = null;
           try {
            // IO流下載文件到本地
            out = new BufferedOutputStream(
              new FileOutputStream(new File(localFilePath
                ,fileName)));
            // 開始下載
            ftp.retrieveFile(file.getName(), out);
            log.info("下載文件:" + file.getName() + "到本地路徑:"
              + localFilePath);
            i++;
           } finally {
            try {
             if (out != null) {
              out.close();
             }
            } catch (Exception e) {
             log.error("", e);
            }
           }
          }
         }
        } else {
         i = -1;
        }
       } finally {
        if(ftp != null&&ftp.isConnected()){
         try {
          log.info("關閉ftp連接");
          ftp.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      return i;
     }
     
     public static int download(String ip,int port,String userName,String password,String ftpPath,final String fileName,String localFilePath)throws SocketException, IOException{
      
     
      return  download(ip, port, userName, password,ftpPath,new FileFilter(){

        public boolean accept(String fileName1) {
       
         return fileName.equalsIgnoreCase(fileName1);
        }
        
       }, localFilePath);
     
     }
     
     
     public static int download(String ip,int port,String userName,String password,final String fileName,String localFilePath)throws SocketException, IOException{
      return  download(ip, port, userName, password,null,fileName, localFilePath);
     }

     
     /**
      * ftp上傳文件至服務器
      * @throws SocketException
      * @throws IOException
      */
     public static void uploadFile(String ip, int port, String userName, String password, String localFile)
           throws SocketException, IOException{
      log.info("上傳本地文件: " + localFile);
      File file = new File(localFile);
      InputStream in = null;
      FTPClient ftpClient = null;
      if(file != null){
       try {
        ftpClient = new FTPClient();
        in = new FileInputStream(file);
        ftpClient.connect(ip,port);
        if(ftpClient.login(userName, password)){
         ftpClient.enterLocalPassiveMode();
         boolean flag= ftpClient.appendFile(file.getName(), in);
         log.info("上傳文件成功:" + flag);
        }
       }catch (SocketException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       }catch (IOException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       } finally{
        if(in != null){
         try {
          in.close();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
        if(ftpClient != null){
         try {
          ftpClient.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      }
     }
     
     
     public static void upload(String ip, int port, String userName, String password, String path,String remotePath)
     throws SocketException, IOException{
      upload(ip, port, userName, password, new File(path), remotePath);
     }
     
     /**
      * ftp上傳文件至服務器
      * @throws SocketException
      * @throws IOException
      */
     public static void upload(String ip, int port, String userName, String password, File localFile,String remotePath)
           throws SocketException, IOException{
      log.info("上傳本地文件: " + localFile.getName());
      InputStream in = null;
      FTPClient ftpClient = null;
      if(localFile != null){
       try {
        ftpClient = new FTPClient();
        in = new FileInputStream(localFile);
        ftpClient.connect(ip,port);
        if(ftpClient.login(userName, password)){
         ftpClient.enterLocalPassiveMode();
         if(remotePath!=null){
          if(!ftpClient.changeWorkingDirectory(remotePath)){
           ftpClient.makeDirectory(remotePath);
           ftpClient.changeWorkingDirectory(remotePath);
          }
         }
         boolean flag= ftpClient.storeFile(localFile.getName(), in);
         log.info("上傳文件成功:" + flag);
        }
       }catch (SocketException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       }catch (IOException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       } finally{
        if(in != null){
         try {
          in.close();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
        if(ftpClient != null){
         try {
          ftpClient.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      }
     }

    }

    posted on 2011-01-21 12:01 David1228 閱讀(2695) 評論(0)  編輯  收藏 所屬分類: J2EE

    <2011年1月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關

    Spring相關

    云計算/Linux/虛擬化技術/

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 358627
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品永久免费| 四虎国产精品成人免费久久 | 国产1000部成人免费视频| 国产偷v国产偷v亚洲高清| 黄 色一级 成 人网站免费| 中文字幕第一页亚洲| 中文字幕不卡免费视频| 亚洲亚洲人成综合网络| 男人的天堂网免费网站| 久久亚洲日韩看片无码| 国产电影午夜成年免费视频 | 亚洲午夜在线电影| 最近免费最新高清中文字幕韩国 | 亚洲美女中文字幕| 9久9久女女免费精品视频在线观看| 亚洲AV无码专区在线亚| 性感美女视频免费网站午夜| 亚洲第一街区偷拍街拍| 亚洲第一区精品日韩在线播放| 国产成人1024精品免费| 亚洲激情在线视频| 毛片免费在线视频| 水蜜桃视频在线观看免费| 亚洲人成网7777777国产| **一级一级毛片免费观看| 亚洲一区二区三区成人网站| 亚洲国产日韩在线观频| 久久精品成人免费观看97| 久久久无码精品亚洲日韩按摩| 亚洲中文无码永久免费| 污视频网站在线观看免费| 国产亚洲综合成人91精品| 日日麻批免费40分钟日本的| 羞羞视频免费网站含羞草| 亚洲AV成人精品网站在线播放 | 色屁屁www影院免费观看视频| 久久91亚洲人成电影网站| 久久久久久久久免费看无码| A国产一区二区免费入口| 亚洲五月综合缴情婷婷| 国产亚洲美女精品久久久2020|