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. 导入依赖:
1 <dependencies> 2 <dependency> 3 <groupId>commons-net</groupId> 4 <artifactId>commons-net</artifactId> 5 <version>3.3</version> 6 </dependency> 7 <dependency> 8 <groupId>junit</groupId> 9 <artifactId>junit</artifactId> 10 <version>4.12</version> 11 </dependency> 12 </dependencies>
2. 项目目录结构:
3. java测试代码:
1 @Test 2 public void testFtp1() throws Exception { 3 FTPClient ftp = new FTPClient(); // 创建客户端对象 4 InputStream local = null; 5 ftp.connect("192.168.33.129", 21); // 连接ftp服务器 6 ftp.login("testftp", "1234567"); // 登录 7 String path = "/home/testftp/image"; // 设置上传路径 8 boolean flag = ftp.changeWorkingDirectory(path); // 检查上传路径是否存在,如果不存在返回false 9 if (!flag) { 10 ftp.makeDirectory(path); // 创建上传的路径 该方法只能创建一级目录 11 } 12 ftp.changeWorkingDirectory(path); // 指定上传路径 13 ftp.setFileType(FTP.BINARY_FILE_TYPE); // 指定上传文件的类型 二进制文件 14 File file = new File("0.jpg"); // 读取本地文件 15 local = new FileInputStream(file); 16 ftp.storeFile(file.getName(), local); // 第一个参数是文件名 17 local.close(); // 关闭文件流 18 ftp.logout(); // 退出 19 ftp.disconnect(); // 断开连接 20 }