使用Ftpclient上传文件时,只能创建文件不能给文件写内容,由于FTP主动模式和被动模式

本文介绍了在使用Java的FTPClient进行文件上传时遇到的问题,即只能创建文件而无法写入内容。重点讨论了FTP的主动模式和被动模式的区别,主动模式下服务器尝试连接客户端的数据端口可能会被防火墙阻止,而被动模式则由客户端建立数据连接,以解决此问题。同时,文中提到了NAT设备在主动模式下可能引发的访问问题,并总结了两种模式的优缺点。
摘要由CSDN通过智能技术生成

下面贴主要代码

try {

        FTPClient ftpClient=new FTPClient ();

        //默认端口号:8080
          int reply;
        ftpClient.connect("172.23.132.000");
        ftpClient.login("user", "test");

        reply =ftpClient.getReplyCode();

        if (!FTPReply.isPositiveCompletion(reply)) {
                ftpClient.disconnect();

            }

        // 设置文件内容

        InputStream input = new ByteArrayInputStream("test".getBytes("GBK"));
        ftpClient.setControlEncoding("UTF-8");
        //二进制

        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

        //下面这段代码很关键,设置被动模式去传输

        ftpClient.enterLocalPassiveMode();

        ftpClient.storeFile(fileName, input);

}

下面是有关

FTP主动模式和被动模式的区别

基础知识:

  FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值