解决JavaFTP上传文件假死问题
2017-05-08 10:24
337 查看
之前使用ftp上传文件,代码很稳定,用了快三年,因为数据迁移,从搭建了ftp服务器,配置好ip和账号密码后,再使用之前代码发现:
在下载过程中,程序出现假死的现象,就是,既不报错,也不抛异常,还不终止,就是一直卡着不动,没法定位问题,自己研究了好长时间,也不知道怎么回事,后来上网又查了查,有人提出了一个方法,真心好用,在这里分享下:
解决方案:
在调用FTPClient.listFiles()或者FTPClient.retrieveFile()方法前,调用FTPClient.enterLocalPassiveMode()!
用人家的原话说,就是“这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。”说实话这是什么意思,我这个水平还不是很懂,望大家指教,现把FTP相关代码贴出来,与大家共享。
//创建FTP连接
ftp.setDefaultPort(//FTP端口号);
ftp.connect(//FTP服务IP地址);
ftp.login(//FTP用户名, //密码);
ftp.setBufferSize(1024);
//设置文件类型(二进制)
ftp.setFileType(ftp.BINARY_FILE_TYPE);
//每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据
// 加入这行代码后,在执行上传或下载文件就没问题了,看来我这个代码还有个隐含bug,尴尬................................
ftp.enterLocalPassiveMode();
在下载过程中,程序出现假死的现象,就是,既不报错,也不抛异常,还不终止,就是一直卡着不动,没法定位问题,自己研究了好长时间,也不知道怎么回事,后来上网又查了查,有人提出了一个方法,真心好用,在这里分享下:
解决方案:
在调用FTPClient.listFiles()或者FTPClient.retrieveFile()方法前,调用FTPClient.enterLocalPassiveMode()!
用人家的原话说,就是“这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。”说实话这是什么意思,我这个水平还不是很懂,望大家指教,现把FTP相关代码贴出来,与大家共享。
//创建FTP连接
ftp.setDefaultPort(//FTP端口号);
ftp.connect(//FTP服务IP地址);
ftp.login(//FTP用户名, //密码);
ftp.setBufferSize(1024);
//设置文件类型(二进制)
ftp.setFileType(ftp.BINARY_FILE_TYPE);
//每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据
// 加入这行代码后,在执行上传或下载文件就没问题了,看来我这个代码还有个隐含bug,尴尬................................
ftp.enterLocalPassiveMode();
相关文章推荐
- java上传文件到ftp-解决中文乱码的问题
- Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题
- java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
- asp.net实现ftp上传代码(解决大文件上传问题)
- asp.net实现ftp上传代码(解决大文件上传问题)
- oracle 调用Java 实现ftp文件的上传和下载 问题
- FTPClient 上传文件行尾存在^M符号问题解决
- Spring上传文件java.lang.IllegalStateException: File has been moved - cannot be read again问题分析及解决
- java中ftp下载上传 解决中文文件上传下载中文乱码和文件上传失败下载文件为0kb
- Linux解决问题篇——ftp上传文件(使用put)时,permission denied,下载文件(使用get)时,failed to open file
- ubuntu主机配置FTP后解决无法接受文件上传的问题
- java-web文件上传下载,可解决多个安全访问问题
- java实现动态上传多个文件并解决文件重名问题
- fckeditor-java-core-2.5.jar上传中文文件显示问题的解决---http://blog.163.com/djm886@126/blog/static/88909942010024
- php使用ftp远程上传文件类(解决主从文件同步问题的简单方法)
- 解决QNetworkAccessManager实现ftp功能后,不能上传大于1G文件的问题
- java中ftp文件上传和中文乱码解决(二)
- ftp文件上传,可以上传至非根目录的指定目录,并解决文件中文无法上传问题,返回文件路径
- java代码实现文件上传到linux服务器及问题汇总及解决(亲测可行)
- java中ftp文件上传和中文乱码解决