Apache FTPClient上传jar文件最终被破坏

时间:2011-07-27 01:42:55

标签: java ftp-client corrupt

我似乎是使用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();

任何帮助将不胜感激!

杰森

3 个答案:

答案 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的测试文件,然后尝试上传。然后下载结果,看看有什么事情被杀死。