4
아파치의 commons-net FTPClient를 사용하여 파일을 업로드하고 있습니다.
storeFileStream 메소드를 사용하고 있습니다.
이것은 첫 번째 호출에는 적합하지만 두 번째 호출에서는 null
을 반환하고 .getReplyStrings()
은 "200 PORT command successful"을 반환합니다!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();
문제가 무엇인가
내 코드 (즉, 각 파일에 대한 루프의 방법으로 불린다)이다?