2012-03-13 203 views
4

我正在使用apache的commons-net FTPClient上傳文件。
我正在使用storeFileStream方法。
這適用於第一次通話,但第二次通話時返回null.getReplyStrings()返回「200 PORT命令成功」!
我的代碼(也被稱作每個文件在一個循環的方法):FTPClient中storeFileStream的第二次調用返回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(); 
相關問題