Я пытаюсь загрузить файл в android на FTP-сервер, используя библиотеку apache.commons.ftp.Apache Commons FTP storeFileStream возвращает null
Примечание: Я использую storeFileStream
, чтобы отслеживать ход загрузки.
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
InputStream inputStream = new FileInputStream(localFile);
OutputStream outputStream = ftpClient.storeFileStream(remoteFile);
byte[] buffer = new byte[8192];
int bytesRead;
logMessage("Starting to upload file");
while ((bytesRead = inputStream.read(buffer)) != -1) {
total += bytesRead;
outputStream.write(buffer, 0, bytesRead); //output stream is null here
latestPercentDone = (int) ((total/(float) totalMegaBytes) * 100);
if (percentDone != latestPercentDone) {
percentDone = latestPercentDone;
publishProgress(""+percentDone);
}
}
inputStream.close();
outputStream.close();
ftpClient.completePendingCommand();
Я использую сервер speedtest.tele2.net для тестирования. Использование анонимного входа.
В журнале говорится, что выходной поток имеет значение null.
EDIT: Используя то, что Мартин Прикрилл и получив код ошибки, я обнаружил, что проблема заключается в удалении удаленного файла.
Загрузить в местоположение, а не в каталог.
Например, если файл caled item1.txt
удаленный файл должен быть /item1.txt
или /someFolder/AnotherFolder/item1.txt
, а не /someFolder/AnotherFolder/
Код ответа - 553, а строка ответа - «Не удалось создать файл» – Maclaren
Что такое значение 'remoteFile'? –