0 кб файл создается после того, как FTP сделан в Java - PullRequest
4 голосов
/ 16 июля 2011

Я пытаюсь отправить файл по FTP на удаленный компьютер. Ниже мой код: -

FTPClient ftpClient = new FTPClient(); 
ftpClient.connect("home.abc.com"); 
ftpClient.login("remote", "guesst12"); 
int replyCode = ftpClient.getReplyCode(); 
ftpClient.changeWorkingDirectory("share")) 
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream input = new FileInputStream(new File("H:/testFile.txt"));
OutputStream out =  ftpClient.storeFileStream("testFile.txt");
Util.copyStream(input, out);
out.close();
input.close();
ftpClient.completePendingCommand()
ftpClient.logout();
ftpClient.disconnect();

Когда я выполняю этот фрагмент кода, код выполняется без проблем, но на удаленном компьютере, когда я проверяю файл, файл создается, но без файла содержимого (OKB). Я что-то упустил в коде.

[Обновить]: Я попытался с помощью следующего кода для хранения файла: -

if(ftpClient.storeFile("testCopy.txt", input)) {
    System.out.println("File Stored Successfully");
}
System.out.println(ftpClient.getReplyString());

Теперь код ответа, который я получил: - 451 Failure writing to local file. Что это значит.

Спасибо

Ответы [ 4 ]

2 голосов
/ 16 июля 2011

Смотря на это снова и снова, я продолжаю придумывать разные вещи.

Вы уверены, что InputStream читает файл перед копированием потока? Потому что я не уверен, что FileInputStream прочитал файл при инициации.

0 голосов
/ 28 января 2015

Одна из причин появления ошибки 451 FTP при попытке скопировать файл по FTP, особенно если вы видите файл размером 0, созданный на стороне сервера, возможно, из-за Нет места на диске.

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

Глядя на старые вопросы здесь с похожими проблемами, похоже, вы нажали ошибку библиотеки Commons-NET (частью которой является FTPClient).

Попробуйте установить более новую версию (3.0.1 или более позднюю) или более раннюю версию (2.2), чтобы это исправить.

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

Я подозреваю, что проблема в Util.copyStream, который вы не предоставили.Я настоятельно рекомендую вам использовать IOutils от Apache Commons IO для копирования потоков.

...