㈠ 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 编码上传并转化较为合理,解决中文文件名的问题;另外,还有多种情况没有举例,大家可以测试一下,以便了解更为透彻。