【问题标题】:second call to storeFileStream in FTPClient returns null在 FTPClient 中对 storeFileStream 的第二次调用返回 null
【发布时间】:2012-03-29 18:38:30
【问题描述】:

我正在使用 apache 的 commons-net FTPClient 上传文件。
我正在使用 storeFileStream 方法。
这适用于第一次调用,但在第二次调用时它返回 null.getReplyStrings() 返回“200 PORT 命令成功”!
我的代码是(在每个文件的循环中作为方法调用):

    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();

有什么问题?

【问题讨论】:

    标签: java ftp ftp-client apache-commons-net


    【解决方案1】:

    上传文件后我应该调用:

        client.completePendingCommand();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多