Apache FTPClient загрузка файлов JAR заканчивается повреждением - PullRequest
1 голос
/ 27 июля 2011

Кажется, я загружаю поврежденные файлы JAR на удаленный сервер, используя Apache FTPClient 3.0.1. Я также устанавливаю файл и тип передачи файла в двоичный файл.

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();

любая помощь будет оценена!

Jason

Ответы [ 3 ]

4 голосов
/ 14 апреля 2012

У меня та же проблема, проблема была решена с помощью setFileType (FTP.BINARY_FILE_TYPE):

client.connect(this.HOST);
client.login(USER, PASSWORD);
client.setFileType(FTP.BINARY_FILE_TYPE);
2 голосов
/ 27 июля 2015

У меня была такая же проблема, в моем случае решение использовало client.setFileType(FTP.BINARY_FILE_TYPE); после входа в систему, а не до.

0 голосов
/ 27 июля 2011

Некоторые вещи попробовать:

Вы абсолютно на 100% уверены, что:

a) storeFile () возвращает true б) вы не выбрасываете где-то исключение

если вы проходите через него в отладчике, то завершает ли он каждый вызов в вашей подпрограмме, а файл все еще заканчивается как частичный на сервере ftp?

Какая часть файла не попадает на FTP-сервер? Создайте тестовый файл, содержащий байты 0-255, повторенные 5 или 10 раз, затем попробуйте загрузить его. Затем загрузите результат и посмотрите, что становится убитым.

...