我似乎是使用Apache的FTPClient 3.0.1将损坏的jar文件上传到远程服务器。我还将文件和文件传输类型设置为二进制。
FTPClient ftp = new FTPClient();
FileInputStream fis = new FileInputStream("filename");
ftp.setFileTransferMode(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.storeFile(fis);
fis.close();
ftp.logout();
ftp.disconnect();
任何帮助将不胜感激!
杰森
答案 0 :(得分:4)
我遇到了同样的问题,使用setFileType(FTP.BINARY_FILE_TYPE)解决了问题:
client.connect(this.HOST);
client.login(USER, PASSWORD);
client.setFileType(FTP.BINARY_FILE_TYPE);
答案 1 :(得分:2)
我遇到了同样的问题,在我的情况下,解决方案是在登录后使用client.setFileType(FTP.BINARY_FILE_TYPE);
,而不是之前。
答案 2 :(得分:0)
有些事情要尝试:
你绝对100%肯定:
a)storeFile()返回true b)你没有在某个地方抛出异常
如果你在调试器中单步执行它,它是否完成了例程中的每个调用,并且该文件仍然在ftp服务器上部分结束?
文件的哪一部分没有到达ftp服务器?创建一个包含重复5或10次字节0-255的测试文件,然后尝试上传。然后下载结果,看看有什么事情被杀死。