<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 閱讀(2701) 評論(0)  編輯  收藏 所屬分類: J2EE

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

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關

    Spring相關

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

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 359851
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最新亚洲人成无码网www电影| 亚洲丁香色婷婷综合欲色啪| 亚洲AV成人一区二区三区在线看| 亚洲乱码国产一区网址| 亚洲国产成人片在线观看| 一区二区三区在线免费| 亚洲日韩人妻第一页| 亚洲人成综合网站7777香蕉| 在线天堂免费观看.WWW| 亚洲午夜电影在线观看| 一个人看的免费高清视频日本| 免费在线观看理论片| 免费一级做a爰片久久毛片潮| 亚洲成a人片在线观看国产| 日本一区二区在线免费观看| 久久精品国产亚洲7777| 亚洲AV无码专区在线电影成人 | 日韩一级片免费观看| 99视频在线精品免费| 亚洲综合成人网在线观看| 999在线视频精品免费播放观看| 亚洲一区动漫卡通在线播放| 国内精品免费在线观看| 精品亚洲麻豆1区2区3区| 毛片免费观看网址| 亚洲明星合成图综合区在线| 在线视频精品免费| 色网站在线免费观看| 日本一道高清不卡免费| 亚洲剧情在线观看| 凹凸精品视频分类国产品免费| xxxxxx日本处大片免费看| 亚洲成年轻人电影网站www| 成人免费在线观看网站| 久青草国产免费观看| 久久精品国产亚洲AV高清热| 精品国产麻豆免费网站| 中文日本免费高清| 亚洲一区精品无码| 性色av无码免费一区二区三区| 精品久久久久久亚洲精品|