当前位置: 代码迷 >> Web前端 >> 利用edtftpj组件实现FTP文件的下传-方法二(2)
  详细解决方案

利用edtftpj组件实现FTP文件的下传-方法二(2)

热度:102   发布时间:2012-09-03 09:48:39.0
利用edtftpj组件实现FTP文件的上传--方法二(2)
//把指定目录下所有的文件上传到ftp服务器上
    public void uploadAllFilesInFolder(String folderName,String ftpPath)throws Exception{
        if (isLogin) {
            String strMsg="";
            try{
          File file=new File(folderName);
          if(file.isDirectory()){
              ftpClient.chdir("\\");
              ftpClient.setType(FTPTransferType.BINARY);
              if (checkFolderIsExist(ftpPath)) {
                  ftpClient.chdir(ftpPath);
              } else {
                  createFolder(ftpPath);
              }
              File[] files=file.listFiles();
              for(int i=0;i<files.length;i++){
                  if(files[i].isFile()){
                      try{
                          ftpClient.put(files[i].getPath(),files[i].getName());
                      }catch(Exception ee){
                          strMsg+="upload file<<:"+files[i].getPath()+">> error!Message:"+ee.getMessage()+"\r\n";
                      }
                  }
              }
          }else{
              throw new Exception(folderName+" is not a folder'name!");
          }
            }catch(Exception e){
                throw new Exception(e.getMessage());
            }
        } else {
            throw new Exception("you didnot login remote ftp server!");
        }
    }
   
    //上传指定文件到ftp服务器上
    public void uploadFile(String clientFileName, String ftpPath)
            throws Exception {
        if (isLogin) {
            try {
                //获取文件名
                String filename = "";
                int index = clientFileName.lastIndexOf("\\");
                filename = clientFileName.substring(index + 1);
                ftpClient.chdir("\\");
                ftpClient.setType(FTPTransferType.BINARY);
                if (checkFolderIsExist(ftpPath)) {
                    ftpClient.chdir(ftpPath);
                } else {
                    createFolder(ftpPath);
                }
                ftpClient.put(clientFileName, filename);
            } catch (Exception ex) {
                throw new Exception(ex.getMessage());
            }
        } else {
            throw new Exception("you didnot login remote ftp server!");
        }
    }
    //  检查FTP服务器上文件夹是否存在
    public boolean checkFolderIsExist(String pFolder) throws Exception {
        if (isLogin) {
            String folder=pFolder.trim();
            if(folder.startsWith("\\"))
                folder=folder.substring(1);
            if(folder.endsWith("\\"))
                folder=folder.substring(0,folder.length()-1);
            String strLayer="..";
            if(folder.indexOf("\\")>0){
             String[] folders=folder.split("\\\\");
             for(int i=1;i<folders.length;i++){
                 strLayer+=",";
             }
            }
            boolean result=false;
            try {
                ftpClient.chdir(folder);
                ftpClient.chdir(strLayer);
                result=true;
            } catch (Exception ex) {
                result=false;
            }
            return result;
        } else {
            throw new Exception("you didnot login remote ftp server!");
        }
    }
    //创建远程FTP服务器文件夹
    public void createFolder(String pFolder) throws Exception {
        if (isLogin) {
            if (checkFolderIsExist(pFolder) == false) {
                try {
                    String path = "";
                    ftpClient.chdir("\\");
                    String[] folders = pFolder.split("\\\\");
                    for (int i = 0; i < folders.length; i++) {
                        try {
                            ftpClient.chdir(folders[i]);
                        } catch (Exception ex) {
                            ftpClient.mkdir(folders[i]);
                            ftpClient.chdir(folders[i]);
                        }
                    }
                } catch (Exception ex) {
                    throw new Exception(ex.getMessage());
                }
            }
        } else {
            throw new Exception("you didnot login remote ftp server!");
        }
    }
    public static void main(String[] args) {
        try{
            FTPUpload ftp=new FTPUpload("192.168.0.176","21","","");
            ftp.uploadAllFilesInFolder("D:\\my driver\\Sony DSC","yhp");
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}
  相关解决方案