图片存储和如何返回给前端

存储 数据管理
一般来说,我们图片存储都会存储在专门的对象存储服务器上。常见的有阿里云oss,七牛云,华为云等等。像这些对象存储,一般都会有bucket(桶)的概念,和对象的概念。

前言:

了不起学弟:了不起学长,最近我开发遇到了关于存储图片和返回给图片给前端的相关内容,我不太会,可以给我讲讲吗?了不起:可以,这块其实不难,你学过几次就可以了。

正文:

一般来说,我们图片存储都会存储在专门的对象存储服务器上。常见的有阿里云oss,七牛云,华为云等等。像这些对象存储,一般都会有bucket(桶)的概念,和对象的概念。

你的项目一般都会有自己的一个桶,你就可以去桶内存储你要存储的对象。桶和对象都是有自己的权限,这个需要你自己通过后台或者接口去设置acl。

对于前端需要上传的图片,我们后端通过MultipartFile 去接受图片,然后通过阿里云的接口去把图片上传就可以了。

同时要注意,上传图片通过我们的接口,我们需要去校验文件的真实性,大小。如果没有这层校验,不管是从业务的角度,还是安全的角度,都是不可取的。

上传完图片,我们可以在相应的云上获取到图片的链接。通过这个链接我们就有以下几种方式去返回给前端了。

第一种:url可以直接返回给前端,让页面自己去加载图片。这种方式是最方便的。

第二种,后端通过url去获取到图片,然后通过HttpServletResponse.getOutPutStream ,再OutPutStream.write。

通过输出流的方式把图片给前端。这种方式比第一种方式要复杂一点,适合文件下载接口。记得流处理完了要把流关闭。

第三种方式:一些比较固定的图片,比如logo,固定的背景。我们再通过url获取到图片之后,通过Base64.getEncoder().encodeToString(byte)的方式,把图片转化成base64返回给前端。

这种方式适合一些固定图片的场景,不太适合图片太多的场景,对于前端来说有过多的base64不太合适。

温馨提示:对于一些图片需要用户主动去上传,并且会展示出来的图片,切记要进行第三方的对图片的安全检查。

了不起所在公司的一个小组,就因为出现过用户上传头像,头像非法,然后被公安约谈的情况。图片的不仅仅需要格式校验,图片内容也是需要进行安全校验的。

讲到这里大家也就明白了,图片上传的前后逻辑。对于图片上传,大家了解了,其他的文件也是同样的道理,图片,文件,视频等等都是一样的。

对于一些大一点的视频图片,可能也会涉及到分段上传,云都会有相应的api提供给大家。

责任编辑:武晓燕 来源: Java面试教程
相关推荐

2023-02-03 10:08:13

前端存储库存储配额

2021-11-29 08:50:57

Javascript存储函数

2010-05-07 13:03:01

Oracle通过存储过

2009-09-17 10:27:55

linq存储过程

2013-04-16 09:30:09

前端开发Web网页设计

2009-09-09 10:54:52

Linq存储过程返回

2024-03-11 08:27:43

前端图片格式

2010-03-30 13:30:49

Oracle存储

2023-06-01 07:36:11

后端前端Java

2014-01-07 09:15:24

云集成云存储RESTful

2021-07-05 14:55:28

前端优化图片

2011-07-19 17:33:53

存储过程javaibatis

2009-04-03 17:24:54

虚拟化存储服务器

2021-04-18 18:38:41

数据存储存储数据

2009-03-05 17:52:36

虚拟化存储虚拟机

2019-02-01 15:05:08

前端ReactAngular

2018-09-17 14:06:46

UCloudUGC

2018-09-17 14:02:28

UCloudGUC

2018-09-17 13:52:39

UCloudUGC

2018-08-14 10:31:18

私有云存储公有云
点赞
收藏

51CTO技术栈公众号