❶ 关于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复制文件命令为用户提供了强大的文件传输功能,能够方便快捷地实现文件在本地与远程服务器之间的传输。