图片上传问题

解决:vsftpd+nginx解决方案

在传统上传方式中,在项目的跟目录下创建upload目录,将图片上传到tomcat服务器中。但是在分布式环境下,是有多个Tomcat存在的,当把图片直接上传到Tomcat服务器时,容易出现图片丢失的问题。
 

由于项目最终是要部署到Linux环境,所以直接将图片上传到Linux服务器。

问题:那如何将图片上传到Linux呢?
答:使用vsftpd组件,实现文件传输。
 
问题1vsftpd是什么?
答:ftpFile Transfer Protocol)文件传输协议。(实现不同操作系统之间文件的传输)
vsftpd是一个基于ftp协议的文件传输服务器软件。
 
问题2vsftpd作用是什么?
答:传输文件的文件服务器。(跨平台、跨操作系统)
问题3:如何使用?
答:服务端:在linux安装vsftpd软件,开启服务。
客户端:通过FtpClient客户端建立和服务器的连接,向服务器发送请求。
 
 
实现步骤
第一部分:在Linux上部署vsftpd服务
  • 第一步:安装vsftpd软件
  • 第二步:关闭匿名访问
  • 第三步:添加一个FTP用户
  • 第四步:设置防火墙 vsftpd服务默认端口号为21,修改防火墙,开放此端口,重启防火墙。
  • 第五步:修改selinuxLinux安全内核系统)
(1)先查看selinux,默认是禁用了ftp访问的。
2)修改selinux,开放ftp访问权限
  • 第六步:启动vsftpd服务
第二部分:SpringMVC实现上传
思路
1)使用Springmvc上传组件,从页面表单接收图片
2)使用vsftpd组件,将图片上传到Linux服务器。
     a)、服务端:在Linux上安装ftp服务端vsftpd软件,并开启服务。
     b)、客户端:在java代码中使用FtpClient客户端建立与服务器的连接
3)返回值:返回图片上传之后的访问路径。
为什么?
因为保存图片到数据库的时候,保存的就是图片的访问路径。