使用java向ftp上传多张图片_(变强、变秃)Java从零开始之VSFTP

VSFTP

一、 FTP 服务器

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 在 FTP 的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

二、 VSFTPD 简介

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。

三、项目中图片服务器

1 单体架构中的图片管理

在传统的单体架构项目中,可以在 web 项目中添加一个文件夹,来存放上传的图片。 优点:使用方便,便于管理 缺点: 1、如果是分布式环境中图片引用会出现问题。

6414345210d1d36a8ff55ac801aa2657.png

2、图片的下载会给服务器增加额外的压力

2 分布式环境的图片管理

7436e7b3b9b33a4918e2f0941d791727.png

四、 安装 VSFTP

1 安装 vsftpd 组件 yum -y install vsftpd 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是 vsftp 的配置文件。

2 添加一个 Linux 用户 此用户就是用来登录 ftp 服务器用的。 useradd ftpuser 这样一个用户建完,可以用这个登录。登录后默认的路径为 /home/ftpuser.

3 给用户添加密码。 passwd ftpuser 输入两次密码后修改密码。

4 防火墙开启 21 端口 因为 ftp 默认的端口为 21,而 centos 默认是没有开启的,所以要修改 iptables 文件 vim /etc/sysconfig/iptables 复制22端口-jACCEPT行 改成21 还要运行下,重启 iptables 命令:service iptables restart

5 修改 selinux 开启外网访问 外网是可以访问上去了,可是发现没法返回目录(使用 ftp 的主动模式,被动模式还是无法访问),也上传不了。 修改 selinux: 执行以下命令查看状态: [root@bogon ~]# getsebool -a | grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> off [root@bogon ~]# 执行上面命令,再返回的结果看到两行都是 off,代表,没有开启外网的访问 [root@bogon ~]# setsebool -P allow_ftpd_full_access on [root@bogon ~]# setsebool -P ftp_home_dir on 6 关闭匿名访问 修改/etc/vsftpd/vsftpd.conf 文件:

f017af43276806c09fcee371ad0878f8.png

重启 ftp 服务: service vsftpd restart

7 设置开机启动 vsftpd ftp 服务 chkconfig vsftpd on

五、图片上传

1.使用FileZilla上传

链接注意用户名密码为fptuser(为ftp创建的用户)端口22

使用FTP协议在游览器中访问图片服务器:

ftp://username:userpassword@IP/路径/图片名称(在 VSFTPD 的插件中。不允 许这样访问。会弹框提示登录。)

2.FTPClient 工具

FTPClient 是 Apache 提供的一个开源的基于 JAVA 语言的 FTP 客户端工具。

FTPClient 位于 Apache 的 commons-net 项目中。

创建maven项目 编写FTPClient类

public void FTPClientTest() throws Exception{
		//创建FTPClient对象
		FTPClient ftp = new FTPClient();
		//链接端口使用的21
		ftp.connect("192.168.190.129",21);
		
		//绑定用户名密码,链接时完成登录
		ftp.login("ftpuser", "ftpuser");
		
		//操作上传文件
		InputStream is = new FileInputStream("C:/Users/Administrator/Desktop/文档专栏/p.jpg");
		
		//指定上传文件的保存目录
		ftp.changeWorkingDirectory("/home/ftpuser/images");
		
		//开启字节流传输
		ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
		
		//文件上传
		ftp.storeFile("p.jpg", is);
		
		//退出登录
		ftp.logout();
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值