前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图片存储和如何返回给前端

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

作者头像
灬沙师弟
发布2023-10-27 10:23:28
2360
发布2023-10-27 10:23:28
举报
文章被收录于专栏:Java面试教程Java面试教程

前言:

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

正文:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

结尾:

希望大家对这块内容有所了解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 正文:
  • 结尾:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档