ftp服务器搭建及简单操作
1. 添加一个新用户,使用名useradd testftp,然后使用passwd testftp对新添加的用户设置密码(这里设置为“1234567”)。
2. 安装ftp服务,输入命令:yum install vsftpd
3. 使用命令查看: getsebool -a|grep ftp
4. 使用命令:setsebool -P 来设置
setsebool -P allow_ftpd_full_access=on
setsebool -P ftp_home_dir=on
5. 在防火墙中开发21号端口,输入命令vim /etc/sysconfig/iptables
6. 重启防火墙,输入命令:service iptables restart
7. 启动ftp服务器,输入命令:service vsftpd start
使用java测试ftp上传功能
1. 导入依赖:
<dependencies>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2. 项目目录结构:
3. java测试代码:
@Test
public void testFtp1() throws Exception {
FTPClient ftp = new FTPClient(); // 创建客户端对象
InputStream local = null;
ftp.connect("192.168.33.129", 21); // 连接ftp服务器
ftp.login("testftp", "1234567"); // 登录
String path = "/home/testftp/image"; // 设置上传路径
boolean flag = ftp.changeWorkingDirectory(path); // 检查上传路径是否存在,如果不存在返回false
if (!flag) {
ftp.makeDirectory(path); // 创建上传的路径 该方法只能创建一级目录
}
ftp.changeWorkingDirectory(path); // 指定上传路径
ftp.setFileType(FTP.BINARY_FILE_TYPE); // 指定上传文件的类型 二进制文件
File file = new File("0.jpg"); // 读取本地文件
local = new FileInputStream(file);
ftp.storeFile(file.getName(), local); // 第一个参数是文件名
local.close(); // 关闭文件流
ftp.logout(); // 退出
ftp.disconnect(); // 断开连接
}