當前位置:首頁 » 文件傳輸 » ftp上傳改名
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp上傳改名

發布時間: 2023-08-08 20:15:56

A. FTP軟體應如何設置才能支持帶中文文件名的文件正常上傳下載

ftp上傳文件時,必須使用英文字元或數據的文件名才能上傳,或者是兩個字的漢字才能上傳到伺服器的話:
1、進入ServerU管理端界面,點擊「伺服器限制和設置」分類功能按鈕,

2、在ServerU伺服器限制和設置界面,選擇「FTP設置」頁簽,點擊窗口下面的「全局設置」按鈕。

3、在打開的「FTP命令屬性」界面,去掉最後一行的勾選,即不要勾選」對所有已收發的路徑和文件名使用UTF-8編碼「。

4、選擇「FTP設置」頁簽,禁用」OPTS UTF8 「,
完成上面的兩處改變後,無法上傳中文名稱的文件的問題應該已經解決了。

B. ftpClient中的rename這個改名方法是怎麼調用的

rename的參數
rename命令的格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
第一個參數:被替換掉的字元串
第二個參數:替換成的字元串
第三個參數:匹配要替換的文件模式
例子:rename main1.c main.c main1.c 將main1.c重命名為main.c
rename支持通配符
? 可替代單個字元
* 可替代多個字元
[charset] 可替代charset集中的任意單個字元

例子:文件夾中有這些文件foo1, ..., foo9, foo10, ..., foo278,
如果使用 rename foo foo0 foo?
會把foo1到foo9的文件重命名為foo01到foo09,重命名的文件只是有4個字元長度名稱的文件悔弊頌,文件名中的foo被替換為foo0。
如果使用 rename foo foo0 foo??
foo01到foo99的所有文件都被重命名為foo001到foo099,只重命名5個字元長度名稱的碧鄭文件,文件名中的foo被替換為foo0。卜滾
如果使用 rename foo foo0 foo*
foo001到foo278的所有文件都被重命名為foo0001到foo0278,所有以foo開頭的文件都被重命名。
如果使用 rename foo0 foo foo0[2]*
從foo0200到foo0278的所有文件都被重命名為foo200到foo278,文件名中的foo0被替換為foo。
rename支持正則表達式
例子:
字母的替換rename "s/AA/aa/" * //把文件名中的AA替換成aa
修改文件的後綴rename "s//.html//.php/" * //把.html 後綴的改成 .php後綴
批量添加文件後綴rename "s/$//.txt/" * //把所有的文件名都以txt結尾
批量刪除文件名rename "s//.txt//" * //把所有以.txt結尾的文件名的.txt刪掉

C. 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

}
有同名就加個序號或者其他方法

D. 關於FTPClient文件夾重命名的問題

環境描述:
1.服務端:採用serv-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 編碼上傳並轉化較為合理,解決中文文件名的問題;另外,還有多種情況沒有舉例,大家可以測試一下,以便了解更為透徹。

E. C#ftp上傳之後怎麼修改文件的名稱

保存操作時把文件名改成你需要的就行了,發個代碼給你看看吧,fileName是什麼就隨你自己改就可以了,只要不和其它名字重復就可以了,一般是用日期加一個隨機數保證唯一性

string sPath = System.Web.HttpContext.Current.Request.MapPath("../../uploadfile/MyPic/") + fileName;

fiuAvatarPic.SaveAs(sPath);

F. bat批處理ftp上傳文件時重命名一個

想做一個批處理 將指定文件用FTP上傳:
ftp是用SERV-U建的 想把c:\1.txt 放到FTP上
FTP地址假設為127.0.0.1
賬戶:11
密碼:11
請問能實現不

我做好的批處理 一直循環,只能手動在CMD里實現 不知道哪兒去了問題
謝謝
想做一個批處理 將指定文件用FTP上傳:
ftp是用SERV-U建的 想把c:\1.txt 放到FTP上
FTP地址假設為127.0.0.1
賬戶:11
密碼:11
請問能實現不

我做好的批處理 一直循環,只能手動在CMD里實現 不知道哪兒去了問題
謝謝

G. linux做的FTP伺服器(vsftpd),上傳的中文文件,名字都會被自動改掉,部分漢字被改成符號

跟中文輸入法沒關系。我的建議是服務端和客戶端都用UTF-8格式最好
給你看看我一個FTP伺服器的編碼:
$ whoami
root
$ echo $LANG
en_US.UTF-8
#這個表明系統默認UTF-8

$ ps auxw | grep vsftpd|grep -v grep
root 32449 0.0 0.0 4288 1020 ? S Sep14 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
#查詢到我的vsftpd的進程號 32449

$ cd /proc/32449/
$ ls
attr coremp_filter exe limits mem root statm wchan
auxv cwd fd loginuid mounts smaps status
cmdline environ io maps mountstats stat task
$ cat environ
TERM=vt100PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/binPWD=/LANG=en_US.UTF-8SHLVL=1_=/usr/sbin/vsftpd
$
#看到environ文件的內容,其中的UTF-8表示我的vsftpd也採用utf-8編碼,en_us表示語系

我的客戶端用的有filezilla和flashfxp,默認都設成了以utf-8傳輸

如果你要用中文語系,最好也檢查一下/usr/share/locale下面,比如:
$ ls /usr/share/locale/ | grep -i cn
zh_CN
zh_CN.GB2312

H. 的FTP能上傳中文命名的文件

在FTP里可以上傳中文名字的文件,在網站空間里也可以用中文名字的文件。但是在某些文件里,比如說ASP、等語言里需要調用這個文件時,如果是中文名字的文件就容易出錯,所以最好不用中文名字。

I. 為什麼FTP不能上傳帶有中文文件名的文件

FTP不能上傳帶有中文文件名的文件是設置錯誤造成的,解決方法為:

1、登陸Dreamstime,點擊右上角「我的賬戶」。