Java实现FTP的上传和下载!
java实现连接FTP服务器,实现文件的上传和下载!!!
java实现连接FTP服务器,实现文件的上传和下载!!!
一、FTP服务器
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP协议是一种专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。用户可以在FTP服务器中进行文件的上传或下载等操作。
ftp服务器创建用户
1.启动ftp服务器
2.创建自己的账号,设置密码,选择主目录并权限(切忌别选禁用账号)
3.通过主机的IP地址和端口号可以在网页启动服务器,启动成功后会显示主目录里的文件
以上步骤都完成并成功后就说明ftp服务器已经搭建好了,接下来我们可以通过Java编程连接并访问该服务器!!!
二、连接服务器
连接服务器并获取当前目录下的所有文件。
首先下载相关的jar包,导好包后创建文件服务器的客户端对象,通过主机地址和端口号以及用户密码,连接服务器。通过循环获取用户主目录下的所有文件。
//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();
try {
//连接ftp服务器并验证用户名密码
ftpClient.connect("192.168.254.138", 21);
ftpClient.login("huling", "147258");
// 获取当前目录中的所有文件
FTPFile[] ftpFileList = ftpClient.listFiles();
for (FTPFile file : ftpFileList) {
System.out.println("文件名称" + file.getName());
System.out.println("创建时间" + file.getTimestamp());
System.out.println("文件大小" + file.getSize() + "字节");
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
连接成功!!!
三、实现上传和下载
1.上传文件
将代码所示路径下的图片上传到创建的个人目录tutu下。
这里有一个判断,判断是否切换到了tutu目录下,如果没有则创建该目录,并将该客户端对象的目录切换到该目录。通过setFileType()方法将文件类型设置为为二进制文件 。
最后通过storeFile()方法上传文件。它的返回值是boolean类型。
- ftpClient.storeFile()方法用于上传文件
- System.currentTimeMillis():显示此刻的时间,精确到时分秒。
- ftpClient.makeDirectory:创建目录(只能逐级创建)
- ftpClient.changeWorkingDirectory("/"); // 切换到根目录,绝对目录
- String dir =ftpClient.printWorkingDirectory(); // 获取当前工作目录
- ftpClient.changeWorkingDirectory(dir); // 切换到当前目录
//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();
try (FileInputStream in = new FileInputStream("D:\\test\\tupian\\cshi.jpg")) {
//连接ftp服务器并验证用户名密码
ftpClient.connect("192.168.254.138", 21);
ftpClient.login("huling", "147258");
boolean isChange = ftpClient.changeWorkingDirectory("tutu");
if (!isChange) {
// 创建个人目录
ftpClient.makeDirectory("tutu");
// 切换
ftpClient.changeWorkingDirectory("tutu");
}
System.out.println(ftpClient.printWorkingDirectory());
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //文件类型为二进制文件
boolean isStore = ftpClient.storeFile(System.currentTimeMillis() + ".jpg", in);
System.out.println("文件上传成功?" + isStore);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
上传成功!!!
2.下载文件
把同一路径下ttu文件夹里名为cshi.jpg下载到(D:\\test\\tupian\\)目录下。
- ftpClient.retrieveFile方法用于下载文件
注意!!!完成后要断开FTP服务器连接
-
退出登录 ftpClient.logout();
-
断开连接 ftpClient.disconnect();
//创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftpClient = new FTPClient();
try (FileOutputStream out = new FileOutputStream("D:\\test\\tupian\\" + System.currentTimeMillis() + ".jpg")) {
ftpClient.connect("192.168.254.138", 21);
ftpClient.login("huling", "147258");
// 切换到个人目录
boolean isChange = ftpClient.changeWorkingDirectory("ttu");
// 下载指定文件夹
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // 文件类型
boolean isRetrieve = ftpClient.retrieveFile("cshi.jpg", out);
System.out.println("下载成功?" + isRetrieve);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ftpClient.disconnect(); //关闭连接
} catch (IOException e) {
e.printStackTrace();
ftpClient = null;
}
}
下载成功!!!
更多推荐
所有评论(0)