㈠ delphi7 用delphi實現文件的FTP批量傳遞有沒有比較好的辦法在傳遞的時候講所有提交的文件重命名
FTP分為兩端:伺服器端+客戶端。如果用delphi編程,既可以兩者都可以自己編寫,也可以伺服器端用現在的軟體,客戶端自己寫代碼。
從你的問題來看,傳輸的時候將文件名重命名,據我的理解,傳輸的過程中是無法更名的,可以考慮在傳輸開始前、結束後進行重命名。
比如:
如果是下載數據,當數據下載前或下載後都可以進行文件更名操作。
如果是上傳,可以在上傳之前就將文件進行更名,更名後再上傳。
㈡ C# FTP上傳文件同時更改該文件的名稱
_ftpClient.ChangeDirectory(IniConfig.PSBCUploadFtpHomePath);
首先選好ftp伺服器文件夾作為上傳路徑
_ftpClient.Files.Upload(Path.GetFileName(f), f);
然後用Upload方法上傳,Path.GetFileName(f)就是上傳的文件名,可以更改。如果為了文件名唯一性,可以在上傳前先判定伺服器里是否有同名文件,
foreach (var file in _ftpClient.Files){
xxxxx
}
有同名就加個序號或者其他方法
㈢ 如何使用FTP上傳文件
1、下載軟體FileZilla(用的比較多的一款),
㈣ ftp命令怎麼上傳文件夾
1、輸入命令行:--> FTP 10.1.61.212 如果對方沒有開啟FTP服務,那麼這個命令就不會有效果。
㈤ 關於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 編碼上傳並轉化較為合理,解決中文文件名的問題;另外,還有多種情況沒有舉例,大家可以測試一下,以便了解更為透徹。