• 关于ftp的使用


      这是实习期间第二次写随笔,通过这种方式来总结自己这段时间所学的东西,希望能帮助到。

      FTP是文件传输协议,用于Internet上的控制文件的双向传输。也就是说,eclipse中的程序可以将本地的文件以及远程的文件相互连通,可以上传也可以下载。

     就以上传为例,这里写部分代码,

    public UploadStatus upload(FTPClient ftpclient,String localFilePath,String remoteFilePath) throws IOException{

    //必须要写的,这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数

    //据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞。

    ftpclient.enterLocalPassiveMode();

    ftpclient.setFileType(FTP.BINARY_FILE_TYPE);//设定二进制传输

    ftpclient.setControlEncoding(DEFAULT_REMOTE_CHARSET);

    UploadStatus result;//上传状态对象

    String remoteFileName = remoteFilepath;//远程文件路径

    //分解远程路径,获得完整路径

    if(remoteFileName.contains("/"){

    remoteFileName = remoteFilePath.subString(remoteFilePath.lastIndexOf("/")+1);

    }

    FTPFile[] files = ftpClient.listFiles(new String(remoteFileName.getBytes(DEFAULT_REMOTE_CHARSET),DAFAULT_LOCAL_CHARSET));//

    if(files.length==1){

    long remotesize = file[0].getSize();

    File f = new File(localFilePath);

    long localsize = f.getSize();

    if(remotesize == localsize){

    //文件已经在本地存在,返回一个值

    }else if( remotesize>localsize){

    //文件不用上传,返回一个值

    }

    //(String,File,FTPClient,long)上传文件

    result = uploadFile(remoteFileName,f,ftpClient,remoteSize);

    }

    //上传失败,则删除远程文件后再上传一遍

    if(result==UploadStatus.Upload_From_Break_Failed){

    if(!ftpClient.deleteFile(remoteFileName)){

     return UploadStatus.Delete_Remote_Failed;

    }

    result = uploadFile(remoteFilePath,f,fileClient,0);

    }

    }else{

    //uploadFile方法不写了

    result = uploadFile(remoteFileName.noew file(localFilePath,ftpClient,0);

    }

    return result;

    }

  • 相关阅读:
    杂谈
    xss bypass 学习记录
    小结--dns注入
    在CentOS 7 安装没有mysql
    备份WordPress
    php留言
    基于mysq搭建的l许愿墙
    http服务的安装与配置
    centos 7忘记密码重置
    安装centos 7 桌面
  • 原文地址:https://www.cnblogs.com/bamaofan/p/4816134.html
Copyright © 2020-2023  润新知