要连接FTP服务器首先要知道端口号与用户名密码
首先进入Ftpconsole.exe
在这里我们就可以看见端口号和主机号
点击小人创建用户名和密码
连接FTP服务器,显示文件列表:
package com.aPesource.day3;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
//import javax.xml.crypto.Data;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class IS_FTP {
public static void main(String[] args) {
// 创建基于FTP协议访问文件服务器的客户端
FTPClient ftp=new FTPClient();
try {
// 第1步:连接ftp服务器并验证用户名密码
ftp.connect("192.168.254.123",21);
ftp.login("admin", "123456");
// 第2步
boolean op=ftp.changeWorkingDirectory("img");
if(op) {
// 切换成功:显示img目录下的所有文件
SimpleDateFormat fmt=new SimpleDateFormat("yyyy年MM月dd日");
// 获取当前目录中的所有文件
FTPFile[] ftplist=ftp.listFiles();
for(FTPFile file:ftplist) {
// 文件名称中包含中文乱码
String fileName=file.getName();
fileName=new String(fileName.getBytes("iso-8859-1"),"gb2312");
System.out.println("文件名称:"+fileName);
Date createDate=file.getTimestamp().getTime();
System.out.println("创建时间:"+fmt.format(createDate));
System.out.println("文件大小:"+file.getSize()+"字节");
}
}else {
// 创建制定目录
ftp.makeDirectory("img");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
基于FTP协议的文件上传:
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
//基于FTP协议的文件上传
public class FTPsend {
public static void main(String[] args) {
// 创建基于FTP协议访问文件服务器的客户端对象
FTPClient ftp=new FTPClient();
try(FileInputStream i=new FileInputStream("C:\\Users\\Lenovo\\Desktop\\微信图片_20230708095429.jpg")) {
// 第一步:连接FTP服务器并验证用户名密码
ftp.connect("192.168.155.123",21);
ftp.login("admin", "123456");
// 第2步:切换个人目录
boolean op=ftp.changeWorkingDirectory("suhan");
if(!op) {
// 创建个人目录
ftp.makeDirectory("suhan");
// 切换
ftp.changeWorkingDirectory("suhan");
}
// 第3步:文件上传
ftp.setFileType(ftp.BINARY_FILE_TYPE);
// 存文件至FTP服务器
// 参数1:FTP文件的名称
// 参数2:本地文本输入流
boolean istrue=ftp.storeFile(System.currentTimeMillis()+".jpg", i);
System.out.println("文件上传成功?"+istrue);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
基于FTP协议的文件下载:
package com.aPesource.day3;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
//基于FTP协议的文件下载
public class FTPdown {
public static void main(String[] args) {
// 创建基于FTP协议访问文件服务器的客户端
FTPClient ftp=new FTPClient();
try (FileOutputStream out=new FileOutputStream("E:\\图片\\"+System.currentTimeMillis()+".jpg")){
// 第一步:连接ftp服务器并验证用户名密码
ftp.connect("192.168.19.1",21);
ftp.login("suhan", "Zs200237");
// 第2步:切换至个人目录
boolean op=ftp.changeWorkingDirectory("img");
// 第3步:下载制定文件
ftp.setFileType(ftp.BINARY_FILE_TYPE);
boolean isdown=ftp.retrieveFile("s33740034.jpg", out);
System.out.println("下载成功?"+isdown);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
// 断开连接
ftp.disconnect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
ftp=null;
}
}
}
}