❶ 關於FTPClient文件夾重命名的問題
環境描述:
1.服務端:採用-u11.3版本的伺服器管理工具作為ftp服務端
2.客戶端:採用FTPClient 1.4.1組件作為客戶端訪問ftp伺服器
我們在用FTPClient組件上傳文件時,當上傳的文件名為中文時,有以下幾種情況:
一、當沒有禁用serv-u服務端工具的上傳下載編碼時,即:
沒有將域限制和設置里默認的opts-utf8禁止,在:域限制和設置---FTP設置選項卡---全局屬性---高級選項---第三個多選框。
1.客戶端代碼中如果編碼為:UTF-8,那麼完全沒有問題,中文命名的文件可以正常上傳;參考以下代碼:
/**
* FTP上傳單個文件測試
*/
public static void testUpload() {
FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;
try {
ftpClient.connect("此處填寫伺服器IP");
ftpClient.login("用戶名", "密碼");
File srcFile = new File("F:\\路由器配置.txt");
fis = new FileInputStream(srcFile);
//設置上傳目錄
ftpClient.changeWorkingDirectory("/admin/pic");
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("UTF-8");//這里設置編碼
//設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
boolean temp = ftpClient.storeFile(new String("路由器配置.txt".getBytes("UTF-8"),"iso-8859-1"), fis);//編碼轉換
System.out.println("temp-------"+temp);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("FTP客戶端出錯!", e);
} finally {
IOUtils.closeQuietly(fis);
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("關閉FTP連接發生異常!", e);
}
}
}
2.客戶端代碼中如果編碼為:GB2312,可以上傳,但是上傳的文件名為亂碼,代碼同上,改變紅顏色的字的編碼為GB2312即可;
二、一、當不選serv-u服務端工具的上傳下載的默認編碼時,即:
在:域限制和設置---FTP設置選項卡---全局屬性---高級選項---第三個多選框不要勾選時;
1.客戶端代碼中如果編碼為:UTF-8,文件不能上傳,代碼中,temp變數為false;
2.客戶端代碼中如果編碼為:GB2312,文件正常上傳,並且不為亂碼,代碼中,temp變數為true;
綜合上述:將ftp伺服器默認編碼禁用,並且客戶端代碼中以GB2312 編碼上傳並轉化較為合理,解決中文文件名的問題;另外,還有多種情況沒有舉例,大家可以測試一下,以便了解更為透徹。
❷ 在FTP命令當中查看本地文件列表命令是
查看本地文件列表命令是:ls
其它常用的FTP命令及含義:
1、dir:顯示伺服器目錄和文件列表
2、cd:進入伺服器指定的目錄(dir命令可以使用通配符「」和「?」,比如,顯示當前目錄中所有擴展名為jpg的文件,可使用命令 dir .jpg。)
3、put:上傳指定文件put filename [newname]
4、、send:上傳指定文件send filename [newname]
(filename為上傳的本地文件名,newname為上傳至FTP伺服器上時使用的名字,如果不指定newname,文件將以原名上傳。)
(2)ftp文件名帶時間擴展閱讀
ftp命令行格式及開關含義:
ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [computer]
-v - 禁止顯示遠程伺服器相應信息
-n - 禁止自動登錄
-i - 多文件傳輸過程中關閉交互提示
-d - 啟用調試,顯示所有客戶端與伺服器端傳遞的命令
-g - 禁用文件名通配符,允許在本地文件和路徑名中使用
-s:filename - 指定包含 FTP 命令的文本文件;命令在FTP啟動後自動運行。此參數中沒有空格。可替代重定向符(>)使用。
-a - 在綁字數據連接時使用所有本地介面
-w:windowsize - 覆蓋默認的傳輸緩沖區大小 65535。
computer - 指定遠程電腦計算機名或IP地址。此參數必須放到最後。
❸ FTP 復制文件命令
FTP復制文件命令是get文件名,用於將遠程文件傳輸到本地。具體命令格式為:get 文件名。這項功能非常適合用於從遠程伺服器下載文件。如果需要查看FTP命令的詳細說明,可以通過輸入說明命令來實現,後面可以跟參數,比如要解釋特定命令,可以輸入:說明 命令名。如果不加命令名參數,則會顯示所有可用命令的列表。
在執行FTP命令時,也可以運行本地命令。命令格式為:! command,其中command是你想要執行的本地命令。如果省略command參數,將進入本地命令提示符,這時可以輸入exit命令返回到FTP界面。
FTP還提供了宏定義功能,通過輸入$ macro-name[args]來執行宏定義。宏定義可以用來保存一組常用的FTP命令,方便快速執行一系列操作。
另外,FTP還支持文件附加操作,使用當前文件類型設置,將本地文件附加到遠程計算機中的命令為append。具體格式為:append local-file [remote-file]。其中,local-file表示指定要附加的本地文件,remote-file表示指定要附加到遠程計算機文件的名稱,如果省略remote-file參數,則使用與本地文件相同的名稱作為遠程文件名。
需要注意的是,在使用這些命令時,必須確保正確輸入文件路徑和名稱,以免發生文件傳輸錯誤。此外,還需要確保遠程伺服器和本地計算機之間的連接穩定,以保證文件傳輸的順利進行。
最後,使用FTP進行文件傳輸時,應當注意文件的大小限制以及網路帶寬的影響,以避免因文件過大或網路擁堵導致傳輸失敗。同時,對於重要的數據傳輸,建議使用加密傳輸方式,確保數據的安全性。
總的來說,FTP復制文件命令為用戶提供了強大的文件傳輸功能,能夠方便快捷地實現文件在本地與遠程伺服器之間的傳輸。