Я пишу загрузчик файлов изображений для Android для моего любимого программного обеспечения галереи изображений, и он использует FTP.Я начал использовать Apache-Commons Net FTP в качестве своей библиотеки ftp на основе вопросов о переполнении стека .Примерно так:
FTPClient ftp = new FTPClient();
try{
ftp.connect(host);
Log.i(TAG,"we connected");
if(!ftp.login(user,pass)){
ftp.logout();
//TODO: alert user it didn't happen
return;
}
String replyStatus = ftp.getStatus();
Log.i(TAG,replyStatus);
int replyCode = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode))
{
ftp.disconnect();
//TODO: alert user it didn't happen
return;
}
Log.i(TAG,"we logged in");
ftp.changeWorkingDirectory(path);
ftp.setFileType(ftp.BINARY_FILE_TYPE);
for(int i = 0; i < contentUris.size(); i++){
Log.i(TAG,"uploading new file");
Uri stream = (Uri) contentUris.get(i);
//InputStream in = openFileInput(getRealPathFromURI(stream));
InputStream in =this.getContentResolver().openInputStream(stream);
BufferedInputStream buffIn=null;
buffIn=new BufferedInputStream(in);
ftp.setFileType(ftp.BINARY_FILE_TYPE);
boolean Store = ftp.storeFile("test.jpg", buffIn);
Log.i(TAG, "uploaded test");
}
ftp.disconnect();
}
catch(Exception ex){
//do something wise and smart and useful
}
Я вижу в журнале, что я вошел в систему, я могу изменить каталоги, и когда я загружаю, я получаю test.jpg в моем каталоге, но с 0Размер байта.
Что дает?Я не открываю поток ввода правильно?Как мне правильно это сделать?
Если я не даю достаточно подробностей, дайте мне знать - полный код также доступен на github