2013-08-06 2 views
0

Я хочу загрузить захваченное изображение с телефона android на сервер Ftp. Я написал следующий код im сталкиваясь с ошибкой на этой строке ftp.store (удаленный, ввод) после этой строки im get answercode = 550 file unavialable im using apache commons-net 3.3 библиотека я пробовал
такой же с WebClient в .net, он отлично работает, но в java его дает мне ошибку (550), я искал много сайтов, но не помогал, даже звонил в хостинг обслуживание они сказали, нет проблем с там стороны я stucked от последнего 1 день плз не поправьте меня, что я здесь отсутствует ......Загрузка снятого изображения на FTP с использованием ftpClient в android

мой код:

private void UploadImage(){ 

    FTPClient ftp = new FTPClient(); 

    try { 
     ftp.connect("hostname",21);// Using port no=21 
     int reply = ftp.getReplyCode(); //here i m getting 220 

     ftp.login("abc", "abc"); 

     reply = ftp.getReplyCode();  //here i m getting 230 

     ftp.setFileType(FTP.BINARY_FILE_TYPE); 



     reply = ftp.getReplyCode(); 

     ftp.enterLocalPassiveMode(); 

     reply = ftp.getReplyCode(); 
     File sfile = new File(PhotoPath); //here i m getting /mnt/sdcard/DCIM/CameraSample/abc769708880.jpg 

     String filename = sfile.getName(); 
     FileInputStream fis = new FileInputStream(sfile); 
     boolean aRtn=ftp.storeFile("ftpPath"+sfile.getName(), fis);// return true if successful 

     reply = ftp.getReplyCode(); // here im getting 550 

     if(aRtn == true) 
     { 
      Toast toast= Toast.makeText(getApplicationContext(), 
        "Successfull", Toast.LENGTH_LONG); 
        toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER, 0, 0); 
        toast.show(); 
     } 
     fis.close();  
     ftp.disconnect(); 

    } catch (SocketException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


} 

ответ

0

Это исключение, похоже, бросается при попытке выполнить сетевые операции (например, FTP) из основного потока. Это не допускается по соображениям производительности (так что приложение не блокируется для пользователя при выполнении действия, которое может занять некоторое время). Предполагая, что вы используете Honeycomb или выше, вам нужно будет переместить код, который сделает соединение в его собственный дочерний поток.

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

http://developer.android.com/guide/practices/design/responsiveness.html

+0

я использую AsyncTask, чтобы загрузить этот файл я не получаю эту ошибку NetworkOnMainThreadException ..... –

Смежные вопросы