2012-03-13 11 views
4

ファイルをアップロードするために、Apacheのcommons-net FTPClientを使用しています。
私はstoreFileStreamメソッドを使用しています。
これは最初の呼び出しでうまくいきますが、2回目の呼び出しではnullを返し、.getReplyStrings()は "200 PORTコマンド成功"を返します。
マイコードは(それは各ファイルのループ内のメソッドとして呼ばれている)である。FTPClientのstoreFileStreamへの2回目の呼び出しでnullが返される

FileInputStream fis = null; 
    File LF=new File(localFilePath); 
    InputStream is = new FileInputStream(LF); 

    for(String DP:(remoteBasepath+"/"+remoteFilePath).split("/")){ 
     if(!client.changeWorkingDirectory(DP)){ 
      client.makeDirectory(DP); 
      client.changeWorkingDirectory(DP); 
     } 
    } 

    for(String line:client.getReplyStrings()){ 
     System.out.println(line); 
    } 
    OutputStream os = client.storeFileStream(LF.getName()); 
    byte[] buffer = new byte[1024]; 
    int len; 
    System.out.println("start"); 
    long RBUN=0L; 
    for(String line:client.getReplyStrings()){ 
     System.out.println(line); 
    } 
    while ((len = is.read(buffer)) != -1){ 
     os.write(buffer, 0, len); 
     os.flush(); 
     RBUN+=len; 
     CFPRGS.setValue(Math.round((RBUN*100/LF.length()))); 
    } 
    for(String line:client.getReplyStrings()){ 
     System.out.println(line); 
    } 
    is.close(); 
    os.close(); 

問題は何ですか?

答えて

8

私が呼び出す必要があり、ファイルをアップロードした後:

client.completePendingCommand(); 
関連する問題