Java上传图片到CentOS7系统中的FTP服务器

本文介绍使用Java将图片上传到虚拟机CentOS7系统的FTP服务器,再通过Nginx访问图片的方法。包括在CentOS7系统安装Nginx、vsftpd服务,详细说明了安装vsftpd组件、配置vsftpd.conf文件的步骤,还提及查看ftp状态和给出Java代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Java将图片上传到虚拟机CentOS7系统中的FTP服务器中,再通过Nginx访问图片。

需要现在CentOS7系统中安装Nginx:

CentOS7系统;Nginx安装vsftpd服务安装; 


1. 安装vsftpd组件

# yum -y install vsftpd

1.1 启动ftp

# systemctl start vsftpd.service

1.2 开放防火墙的21端口(ftp默认21端口)

# firewall-cmd --zone=public --add-port=21/tcp --permanent
zone->作用域
port->增加的端口/传输协议
permanent->有效期,不设置permanent的话系统重启该端口就失效

1.3 重新加载防火墙

重新加载防火墙:
# firewall-cmd --reload
显示以开放的端口:
# firewall-cmd --list-ports

2. 配置vsftpd.conf文件

对以下地方进行修改:

# vi /etc/vsftpd/vsftpd.conf

2.1 关闭匿名用户

使匿名用户不能登录,修改文件中的
anonymous_enable=NO

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

2.2 开启PASV(被动模式)

在 /etc/vsftpd/vsftpd.conf 的最下面加入

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30999(每次文件传输都是随机打开端口,防火墙也需要同时打开对应的端口)

保存退出后,重新启动vsftpd:

# systemctl restart vsftpd.service

开启防火墙30000-30999端口:

# firewall-cmd --zone=public --add-port=30000-30999/tcp --permanent 
# firewall-cmd --reload

3. 查看ftp的状态

# getsebool -a|grep ftp

显示结果:

ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

修改红色的地方为on:
# setsebool -P ftpd_full_access on
# setsebool -P tftp_home_dir on

4. Java代码

import java.io.File;
import java.io.FileInputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.junit.Test;

public class FTPTest {
	@Test
	public void testFtpClient() throws Exception{
		// 创建一个FtpClient对象
		FTPClient ftpClient = new FTPClient();
		// 创建ftp连接,默认21端口
		ftpClient.connect("***.***.***.***", 21);
		// 登录ftp服务器,使用用户名和密码
		ftpClient.login("ftpuser", "******");
		// 上传文件
		// 读取本地文件
		FileInputStream inputStream = new FileInputStream(new File("D:\\eclipse\\2.jpg"));
		// 被动模式:服务端开放端口给客户端用
		ftpClient.enterLocalPassiveMode();
		// 设置上传的路径
		ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");
		// 修改上传文件的格式,采用二进制的方式
		ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
		//(服务器文档名,上传文档的inputStream)
		ftpClient.storeFile("2.jpg", inputStream);
		// 关闭连接
		ftpClient.logout();
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值