当前位置:首页 » 文件传输 » 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,点击右上角“我的账户”。