图片上传的两种形式

简介: 很早以前的单应用项目上传图片都是很简单的,上传图片后在controller层设置路径并且保存到服务器的某个路径下就行了,数据库中存储路径地址,最后在tomcat中设置一个虚拟路径就行了,很多年以前大多都是这么做的。

很早以前的单应用项目上传图片都是很简单的,上传图片后在controller层设置路径并且保存到服务器的某个路径下就行了,数据库中存储路径地址,最后在tomcat中设置一个虚拟路径就行了,很多年以前大多都是这么做的。

然而随着技术的更新迭代,SOA,微服务,这样的做法是会被淘汰的,如果是分布式部署或者集群环境,上传文件到各自的服务器上去,是无法做到统一的,那么就要用到图片服务器,之前我有提过fastdfs,这个是一个非常好用的文件服务器,这里不多说了。各个项目上传的图片都统一由文件服务器来管理,那么以后不论在分布式环境下或者集群环境下,根据分配的路径去访问就可以获得图片即可。

1、使用文件流来处理,这个结果这样做可以同时被浏览器,ios以及安卓调用,从MultipartHttpServletRequest中获取MultipartFile对象即可,最后再调用文件服务器的接口上传即可

2、使用base64上传

切割图片后可以生产一堆base64字符串,这个字符串就是你要上传的图片,只要把这个字符串传到后台去解码处理即可,最终在使用fastdfs来上传就行

 

那么这两种方式有什么区别呢?

1、访问文件流图片需要2次HTTP请求,而BASE64只需要一次

2、文件流图片在任何浏览器都可以被访问到,而base64某些浏览器不支持

3、base64图片无法缓存(缓存整页另当别论)

4、base64编码的图片相对偏大,所以一般都是用来做小图的,比如头像

 

用处:

文件流用来上传大图,比如一些广告图片啊,商品图片等等

base64图片可以用来上传用户头像,或者小的logo,或者小的图标等等

base64可以保存到数据库,而不需求上传,但是我不推荐这么做,图片都应该统一在文件服务器中管理,当然这个看需求设计了

 

相关文章
|
24天前
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
37 0
|
8月前
livp图片怎么打开以及怎么转换成jpg格式教程
livp图片怎么打开以及怎么转换成jpg格式教程
|
9月前
|
JavaScript 前端开发 应用服务中间件
【前端项目笔记】原生js上传文件及文件转换成base64、blob类型
项目中经常会用到上传图片上传视频等功能,由于后端nginx限制,经常要进行文件转化才能上传,大文件可能还要进行切片上传处理。
450 1
|
1月前
excel 图片地址转成图片
excel 图片地址转成图片
13 1
|
11月前
|
存储 小程序
小程序图片上传,存储,获取,显示(含源码)
小程序图片上传,存储,获取,显示(含源码)
243 0
|
11月前
|
iOS开发
iOS formData形式上传身份证正反面图片到服务器
iOS formData形式上传身份证正反面图片到服务器
172 0
|
前端开发
前端学习案例1-blob对象实现文件的下载和图片预览1
前端学习案例1-blob对象实现文件的下载和图片预览1
115 0
前端学习案例1-blob对象实现文件的下载和图片预览1
|
前端开发
前端学习案例2-blob对象实现文件的下载和图片预览2
前端学习案例2-blob对象实现文件的下载和图片预览2
84 0
前端学习案例2-blob对象实现文件的下载和图片预览2
|
开发工具 文件存储 对象存储
阿里云图片上传返回地址有blob格式问题处理实录
阿里云OSS上传图片功能很多人可能对实现过,正常情况下会返回https开头的图片地址.
阿里云图片上传返回地址有blob格式问题处理实录
实现手动上传表单数据+图片文件
在很多项目中都会有上传数据+图片的需求,我最近在项目中负责活动发布的板块,需要几个表单数据加两个图片和一个图片数组,我看到产品需求后头就很大,我之前没有做过相关的业务,所以这几天一直在尝试,看到接口文档我内心已经崩了。
117 1
实现手动上传表单数据+图片文件