今天在利用FTP將客戶端文件存儲到服務器端時,在調用ftpClient.storeFile方法后,總是返回false,在百度之后,有提到說添加一行
ftpClient.enterLocalPassiveMode();
就能解決這個問題,但是在測試之后還是出現,后來整了半天才知道,問題出在中文文件名身上。因此可在代碼中添加如下代碼:
ftpClient.setControlEncoding("UTF-8");
並在創建目錄或者storeFile時,將文件名轉換編碼方式即可,如:
ftpClient.storeFile(new String(fileName.getBytes("UTF-8"),"iso-8859-1"),fiStream);
或者:
ftpClient.makeDirectory(new String(pathName.getBytes("UTF-8"),"iso-8859-1"));
即可解決這個問題