超时设置
ftp = new FTPClient();
ftp.setDefaultTimeout(defaultTimeoutSecond * 1000);
ftp.setConnectTimeout(connectTimeoutSecond * 1000);
ftp.setDataTimeout(dataTimeoutSecond * 1000);
兼容windows iis ftp
public FTPClientConfig getFTPClientConfig() {
String systemKey;
if (isWinFtp) {
systemKey = FTPClientConfig.SYST_NT;
} else {
systemKey = FTPClientConfig.SYST_UNIX;
}
// String systemKey = FTPClientConfig.SYST_NT;
String serverLanguageCode = "zh";
FTPClientConfig conf = new FTPClientConfig(systemKey);
conf.setServerLanguageCode(serverLanguageCode);
conf.setDefaultDateFormatStr("yyyy-MM-dd");
return conf;
}
ftp.configure(getFTPClientConfig());
其他一些设置
//文件名字符集 GBK or UTF-8
ftp.setControlEncoding("UTF-8");
//登录后的一些设置
// 设置ftp传输模式,现在一般都是二进制模式,基本没有用ascii模式的了
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
// 设置使用ftp被动模式
ftp.enterLocalPassiveMode();
参考
[JAVA]Apache FTPClient操作“卡死”问题的分析和解决
https://www.cnblogs.com/CopyPaster/p/3494579.html
利用Apache Ftp组件实现文件上传下载等操作,包含多线程写数据到队列然后通过线程写入文件操作
https://github.com/MrLiam/FtpDemo/blob/master/FtpDemo/src/com/ldl/test/util/FtpUtil.java
© 2018, 新之助meow. 原创文章转载请注明: 转载自http://www.xinmeow.com