作为职场菜鸟和java初学者,前几天被一个问题困扰,想到也许有如我一般的新手也会遇到同样的问题,所以决定先写下来,不行当个笔记存着也是不错的嘛。
言归正传,之前使用Ftpclient上传文件时,TXT可以正常打开,但是其他诸如word和excel文件上传之后无法打开,后来上网一查,都说要在连接ftp服务器之后设置文件传输模式,/ybygjy/article/details/6450826,这个博客说的很清楚。
但是我发现我改了之后还是出问题,依然打不开,后来我又继续查阅资料,需要添加调用FTPClient.enterLocalPassiveMode();这个方法。
他的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。
加了之后依然出现问题,这下有点懵逼了,后来才发现自己犯了一个错误,就是FTPClient.enterLocalPassiveMode();要写在ftpClient.setFileType(FTP.BINARY_FILE_TYPE);的前面否则虽然不报错但文件上传后依然一直报错。最后如果有中文乱码问题的同学,不妨看一下这篇帖子/Linux/-10/107585.htm,这样中文乱码问题也能解决了。
第一次写博客有点,不太懂这个该怎么写,有点乱,大家多包涵哈。