apache ftpclient 使用注意

超时设置

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

0.00 avg. rating (0% score) - 0 votes
点赞