2012-07-11 118 views
0

我想上传文件中像这样无法上传FTP服务器上的文件中的android

try { 
    String extStorageDirectory = Environment.getExternalStorageDirectory().toString 
    FTPClient ftpClient = new FTPClient(); 
    ftpClient.connect("xxx.xxx.xx.xx"); 
    if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) 
    { 
     boolean status=ftpClient.login("username", "password"); 
     Log.d(TAG, "login status=="+status); 
     status=ftpClient.changeWorkingDirectory("New directory"); 
     Log.d(TAG, "changeWorkingDirectory status=="+status); 
     status=ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
     Log.d(TAG, "setFileType status=="+status); 
     ftpClient.enterLocalPassiveMode(); 
     String srcFilePath=extStorageDirectory + "/AA.txt"; 
    FileInputStream srcFileStream = new FileInputStream(new File(srcFilePath)); 
    status=ftpClient.storeFile("AA.txt", srcFileStream); 
    Log.d(TAG, "upload status=="+status); 
     ftpClient.logout(); 
    ftpClient.disconnect(); 
      } 
      else 
      { 
       Log.d(TAG, "connectfail"); 
      } 

     } catch (SocketException e) { 
      Log.d(TAG, "SocketException status=="+e.toString()); 
      e.printStackTrace(); 
     } catch (FileNotFoundException e) { 
      Log.d(TAG, "FileNotFoundException status=="+e.toString()); 
      e.printStackTrace(); 
     } catch (IOException e) { 
      Log.d(TAG, "IOException status=="+e.toString()); 
      e.printStackTrace(); 
     } 
下面

是我logcat的状态

07-11 12:24:43.359: D/FTPDownloadDroid(10647): <!>com.ss.dr 138<!> login status==true 
07-11 12:24:48.379: D/FTPDownloadDroid(10647): <!>com.ss.dr 141<!> changeWorkingDirectory status==true 
07-11 12:24:48.859: D/FTPDownloadDroid(10647): <!>com.ss.dr 143<!> setFileType status==tr 
07-11 12:24:54.359: D/FTPDownloadDroid(10647): <!>com.ss.dr 150<!> upload status==false 

我要上传的文件“新建目录 “文件夹和文件名AA.txt **但它是给上传状态为false。**

服务器或我的代码中的问题? 请帮忙!!!!!!!!! 在此先感谢

回答

2

试试我的代码如下,我用这个来上传和下载歌曲在服务器上。我正在使用Apache的通用库。

请在下面的代码中对目录和文件名进行更改。

上传:

public void goforIt(){ 


     FTPClient con = null; 

     try 
     { 
      con = new FTPClient(); 
      con.connect("192.168.2.57"); 

      if (con.login("Administrator", "KUjWbk")) 
      { 
       con.enterLocalPassiveMode(); // important! 
       con.setFileType(FTP.BINARY_FILE_TYPE); 
       String data = "/sdcard/vivekm4a.m4a"; 

       FileInputStream in = new FileInputStream(new File(data)); 
       boolean result = con.storeFile("/vivekm4a.m4a", in); 
       in.close(); 
       if (result) Log.v("upload result", "succeeded"); 
       con.logout(); 
       con.disconnect(); 
      } 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 






    } 

下载:

public void goforIt(){ 
    FTPClient con = null; 

    try 
    { 
     con = new FTPClient(); 
     con.connect("192.168.2.57"); 

     if (con.login("Administrator", "KUjWbk")) 
     { 
      con.enterLocalPassiveMode(); // important! 
      con.setFileType(FTP.BINARY_FILE_TYPE); 
      String data = "/sdcard/vivekm4a.m4a"; 

      OutputStream out = new FileOutputStream(new File(data)); 
      boolean result = con.retrieveFile("vivekm4a.m4a", out); 
      out.close(); 
      if (result) Log.v("download result", "succeeded"); 
      con.logout(); 
      con.disconnect(); 
     } 
    } 
    catch (Exception e) 
    { 
     Log.v("download result","failed"); 
     e.printStackTrace(); 
    } 



}