問題發生:
環境:VSFTP+FTPClient+Client
使用FTPClient上傳文件的時候總是卡住,而且文件大小為0,上傳失敗,
解決方案:
添加代碼:調用FTPClient的enterLocalPassiveMode();方法,設置為被動模式,既可以解決。
//FTPClient 的使用 public void FTPClientTest() throws Exception { //創建 FTPClient 對象 FTPClient ftp = new FTPClient(); //鏈接 端口使用的 21 ftp.connect("169.254.18.16", 21); //給定用戶名與密碼,鏈接時完成登錄 ftp.login("ftpuser", "ftpuser"); ftp.enterLocalPassiveMode(); //操作上傳文件 InputStream is = new FileInputStream("d:/java.jpg"); //指定上傳文件的保存目錄 ftp.changeWorkingDirectory("/home/ftpuser/casual"); //開啟字節流傳輸 ftp.setFileType(FTPClient.BINARY_FILE_TYPE); //文件上傳 boolean b = ftp.storeFile("aa.jpg", is); System.out.println(b); //退出登錄 ftp.logout(); }