나중에 수정 된 파일을 FTP 서버에 업로드하는 프로젝트를 진행하고 있습니다 ... 파일을 업로드하는 것 외에는 모든 것이 있습니다. FTP 서버에 성공적으로 연결할 수 있지만 파일이 업로드되면 프로그램이 몇 분 동안 중단 된 다음 시간이 초과되었다고 표시됩니다. (명심 나는 로그인 정보를 생략)Java FTP 연결 시간이 초과되었습니다
FTPClient fClient = new FTPClient();
try {
fClient.connect(server, port);
showServerReply(fClient);
int replyCode = fClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("Operation failed. Server reply code: " + replyCode);
return;
}
boolean success = fClient.login(user, pass);
showServerReply(fClient);
if (!success) {
System.out.println("Could not login to the server");
} else {
System.out.println("You are now logged on!");
loginLoop = false;
}
fClient.enterLocalPassiveMode();
fClient.setFileType(FTP.BINARY_FILE_TYPE);
File localFile = new File("files\\shared.txt");
String remoteFile = "shared.txt";
InputStream inputStream = new FileInputStream(localFile);
System.out.println("Start uploading the file");
boolean done = fClient.storeFile(remoteFile, inputStream);
inputStream.close();
if (done) {
System.out.println(remoteFile+" has been uploaded successfully");
}
} catch (IOException ex) {
System.out.println("Oops! Something wrong happened");
ex.printStackTrace();
}finally {
try {
if (fClient.isConnected()) {
fClient.logout();
fClient.disconnect();
System.out.println("FTP Disconnected");
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
정말 오늘까지 아파치 코 몬즈 FTP 엉망 적이 없다 : 여기
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:762)
at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:565)
at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:557)
at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1795)
at AdvertisementCreator.main(AdvertisementCreator.java:128)
e
내가 FTP 연결에있는 코드입니다. 누구나 통찰력을 제공 할 수 있다면 크게 감사하겠습니다.
편집 : 다음 줄을 추가하기 전에 파일을 전송했지만 서버에서 열려고 시도했을 때 파일이 비어 있다는 것을 잊어 버렸습니다.
먼저, 서버의 이름이 올바르게 입력되어 있는지 확인 :
fClient.enterLocalPassiveMode();
fClient.setFileType(FTP.BINARY_FILE_TYPE);
원래 포스트 인 Little Santi에 뭔가를 추가했습니다 ... 패시브 모드로 들어가서 실수로 파일 유형을 설정하지 않고 시도해 보았습니다. 서버로 전송했지만 파일을 열려고하면 파일이 비어있었습니다. 그것. 이것이 영향을 미치는지 확실하지 않습니다. – user4490680
지금 상황이 어떻습니까? 연결 시간 초과 오류가 여전히 발생합니까? 또는 파일을 전송해야하고 이제받은 파일이 비어 있습니까? 실행 추적을 게시하면 도움이 될 수 있습니다. –
현재 내 문제는 연결 시간 제한입니다. 여기 내 코드에서 내가 사용하고있는 튜토리얼을 보았다. http://www.codejava.net/java-se/networking/ftp/java-ftp-file-upload-tutorial-and-example – user4490680