使用ftpClient.listNames()获取的文件列表为空,但服务器上确实有文件,在login()方法后面配置
解决办法:
ftpClient.enterLocalPassiveMode();
项目部署到linux上,发现下载的文件损坏,win上测试正常,common-net的ftpclient默认是使用ASCII_FILE_TYPE,文件会经过ASCII编码转换,所以可能会造成文件损坏。所以我们需要手动指定其文件类型为二进制文件,屏蔽ASCII转换的操作,避免文件在转换的过程中受损。在login()方法后面配置
解决办法:
//设置文件编码类型为二进制文件
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
解决FTPClient读取文件目录或文件名中文乱码问题,在创建FTPClient时配置
//windows设置为
ftpClient.setControlEncoding("GBK");
//linux设置编码为
ftpClient.setControlEncoding("UTF-8");