我一直在尋找答案,但我發現最接近的只是責備服務器。如何使用FTP(E)S從服務器下載文件?
這是我的代碼,我的應用我使用的Zehon庫:
import com.zehon.BatchTransferProgressDefault;
import com.zehon.FileTransferStatus;
import com.zehon.exception.FileTransferException;
import com.zehon.ftps.FTPsClient;
public class UploadFolderSample {
/**
* Please refer to http://www.zehon.com/FTPs_samples.htm for its full source code
* @param args
*/
public static void main(String[] args) {
String host = "****";
int port = 990;
String username = "******";
String password = "*******";
String sendingFolder = "*******/";
String destFolder = "ftpes:******/";
try {
com.zehon.ftps.FTPsClient ftps = new FTPsClient(host, port, username, password, false);
ftps.folderExists(destFolder);
int status = ftps.sendFolder(sendingFolder, destFolder, new BatchTransferProgressDefault());
if(FileTransferStatus.SUCCESS == status){
System.out.println(sendingFolder + " got ftps-ed successfully to folder "+destFolder);
}
else if(FileTransferStatus.FAILURE == status){
System.out.println("Fail to ftps to folder "+destFolder);
}
} catch (FileTransferException e) {
e.printStackTrace();
}
}
}
這是我的錯誤:
Thank you for using Zehon software (www.zehon.com).
Please go to http://www.zehon.com/feedback.php to provide us your feedback about the product.
Please go to http://www.zehon.com/feature_request.php to submit bugs or feature requests.
com.zehon.exception.FileTransferException: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
at com.zehon.ftps.FTPsClient.folderExists(FTPsClient.java:1239)
at test.UploadFolderSample.main(UploadFolderSample.java:34)
Caused by: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:313)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:396)
at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:796)
at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:203)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)
at com.zehon.ftps.FTPsClient.getFTPSClient(FTPsClient.java:1444)
at com.zehon.ftps.FTPsClient.folderExists(FTPsClient.java:1236)
... 1 more
我真的可以使用一些幫助,我一直堅持FTPS的事情已經一個多星期了。
編輯(添加對話框): 這是我使用錯誤的端口時發生的情況,但至少它以這種方式顯示對話框。
> Thank you for using Zehon software (www.zehon.com). Please go to
> http://www.zehon.com/feedback.php to provide us your feedback about
> the product. Please go to http://www.zehon.com/feature_request.php to
> submit bugs or feature requests. 220-FileZilla Server version 0.9.33
> beta 220 Welcome by ***** AUTH TLS 234 Using authentication type TLS
> USER ***** 331 Password required for ***** PASS ******* 230 Logged on
> SYST 215 UNIX emulated by FileZilla PASV 227 Entering Passive Mode
> (******) LIST ftpes:*****/ 550 PROT P required 220-FileZilla Server
> version 0.9.33 beta 220 Welcome by **** AUTH TLS 234 Using
> authentication type TLS USER **** 331 Password required for **** PASS
> **** 230 Logged on Transfer start for file ****\test.txt MODE S 200 MODE set to S. TYPE I 200 Type set to I PASV 227 Entering Passive Mode
> (*****) STOR ftpes:*****/test.txt 550 PROT P required Transfer error
> *****/test.txt Transfer complete for file *****/test.txt Transfer start for file *****/test.txt MODE S
您是否與命令行FTP客戶端有相同的症狀?如果是,請嘗試使用'lftp'進行調試。 – fge
@fge您的意思是客戶喜歡FileZilla嗎?因爲那麼答案是否定的,它通過其他客戶完美地工作。並感謝「lftp」提示:)。 –
您可以用FileZilla可以執行的相同方式跟蹤對話框嗎? – fge