1.相关依赖(因为hutool也是封装的底层apache,记得还要引入apache的依赖)


<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.6</version>
</dependency>

2.相关使用方法(并不完整)

//匿名登录(无需帐号密码的FTP服务器)
Ftp ftp = new Ftp("172.0.0.1");
//进入远程目录
ftp.cd("/opt/upload");
//上传本地文件
ftp.upload("/opt/upload", FileUtil.file("e:/test.jpg"));
//下载远程文件
ftp.download("/opt/upload", "test.jpg", FileUtil.file("e:/test2.jpg"));

//关闭连接
ftp.close();

注意:hutool官方文档写的特别简单,其实一点也不友好,甚至还有问题。

  1. 官方文档中说的是==》Ftp中默认是被动模式,需要切换则。但是并没有默认设置模式(模式有两种,主动模式,被动模式)。这一点真是坑的我不想吐槽了,导致上传方法一直返回false,但是却没有错误日志打印,并且也不报错。

3.完整代码

//匿名登录(无需帐号密码的FTP服务器)
Ftp ftp = new Ftp("172.0.0.1");

// 注意一定要设置模式 此处是被动模式
ftp.setMode(FtpMode.Passive);

//进入远程目录
ftp.cd("/opt/upload");
//上传本地文件
ftp.upload("/opt/upload", FileUtil.file("e:/test.jpg"));
//下载远程文件
ftp.download("/opt/upload", "test.jpg", FileUtil.file("e:/test2.jpg"));

//关闭连接
ftp.close();
  1.  当然具体host,post怎么封装赋值看自己,越方便越好。如果你主动模式不行,就切换被动模式。有可能是ftp服务器的设置不符合主动,被动模式是没问题的。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐