图片文件上传

1)使用类MultipartFile上传;

2)将图片文件路径位置写入properties文件中以便扩展;

3)检验文件类型是否为图片——获取用户上传的文件名,使用正则检测后缀;

4)防止恶意文件上传——将文件交给工具API(ImageIO.read( ))从中获取宽高进行校验;

5)保存众多图片——使用日期格式创建文件夹保存数据,实现图片分文件存储;

6)解决文件重名问题——自定义UUID为文件名称。UUID为32位的16进制,共2^128次;

7) 使用transferTo(文件)实现文件上传;

8)编辑虚拟路径数据返回。

由于上传文件若保存到本地具体磁盘空间中,只能允许自己通过物理磁盘路径进行访问,为了让全部用户都能正常访问,所以必须准备一个虚拟的网络路径,使用户能通过虚拟路径正常访问真实路径。

虚拟路径——真实磁盘路径

使用nginx反向代理实现。用户发起正常的url请求,代替用户去请求真实资源的过程。

1)在图片的properties文件中添加URL路径,并将该虚拟路径在用户上传完成后返回给用户;

2)在nginx的配置文件中,将service中的路径配置好,在真实路径下配置代理路径;

Nginx介绍

Nginx是由俄罗斯人使用C语言负责开发的.是一个轻量级(内核小.占用内存少2M),并发能力强(3-5万/秒)的web服务器/反向代理服务器/电子邮件服务器。

nginx只能启动一次,不能多次启动。若启动多次则前面的启动将被破坏,但是每次更改配置文件后,必须使用命令重启。

Nginx常用命令

启动:start nginx

关闭:nginx -s stop

重启:nginx -s reload

Nginx配置

每个server就是一个服务,listen表示监听端口,sever_name表示监听域名location是具体反向代理的配置信息,root关键字代表文件夹,当域名没购买时,我们可通过修改hosts文件实现域名与IP的映射关系

Nginx实现域名代理

用户访问具体网址时其实是在访问具体的Tomcat服务器,需要标识端口,这时需要使用nginx反向代理技术。

Nginx实现负载均衡

1)准备多台服务器,修改yml文件端口,然后打包项目。

2)启动多台服务器,将打包的项目部署到第三方Tomcat服务器中,直接启动war包程序,运行服务。

命令:java -jar xxx.jar/war 适用于springboot程序,Ctrl+c表示结束。

Nginx负载均衡策略

1)轮询策略:根据配置文件顺序,依次访问tomcat服务器。

2)权重策略:根据物理服务器配置,让高性能服务器尽可能多分配请求。

3)IPHash策略:使用IPhash可以将用户与服务器绑定。(该策略基本不用,因为只要服务器宕机,则部分用户就不能再访问了,会造成严重的负载不均现象)。

Nginx运维配置

down

标识故障机,nginx遇到down标识的服务器,则永远不会再去访问该机器。

backup

.正常情况下该机器不参与用户的访问.留作备用.当服务器全部宕机或者主服务器遇忙时再用。

健康检查、心跳检测

nginx健康监测是为了在没有程序员表示down属性时,引起频繁访问故障机的情况.当服务器宕机.只需要影响用户2秒之后,在指定的周期中不会再次访问故障机.提升用户体验。

你可能感兴趣的:(图片文件上传)