Java实现图片上传到数据库,并把上传的图片读取出来
技术选型
技术选型:
SpringBoot
Vue技术方案:
采用数据库存储图片的方式,后端接口返回图片的base64流,插入数据库前对图片进行加密,接口查询进行解密。
实现
数据库
字段:head_portrait
类型:longblob
实体类属性设置
/*** 头像路径*/
@TableField("head_portrait")
@Lob
private byte[] headPortrait;
业务类处理
import sun.misc.BASE64Decoder;
import org.apache.commons.codec.binary.Base64;@Override
public Result selectHeadPortraitById(String id) {try {Result result = new Result();SysUser sysUser = super.getById(id);//Base64解密图片byte[] bytes = new BASE64Decoder().decodeBuffer(new String(sysUser.getHeadPortrait()));//Base64解析图片流并返回字符串String baseString = Base64.encodeBase64String(bytes);result.setBody(baseString);return result;} catch (IOException e) {throw new Result(e.getMessage(), e.getMessage(), e.getMessage());}
}
baseString:解密后的图片base64流
扩展:
图片加密
/*** 对SysUser对象的头像属性进行加密处理** @param sysUser*/private void dealWithHeadPortrait(SysUser sysUser) {//对图片src转换成字节byte[] bytes = ImgUtils.dealImgOfByte(sysUser.getHeadPortraitSrc());sysUser.setHeadPortrait(bytes);}
图片工具类(ImgUtils)
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Encoder;/*** 工具类:图片*/
public class ImgUtils {/*** 功能:对图片进行转换流,并进行加密* @param src 图片的src* @return*/public static byte[] dealImgOfByte(String src){String str = "data:image/png;base64,";String replaceStr = src.toString().replace(str, "");//将字符串转换为图片流byte[] bytes = Base64.decodeBase64(replaceStr);//将图片流Base64加密String img = new BASE64Encoder().encode(bytes);return img.getBytes();}}
Vue前端
按钮
<el-form-item prop="headPortrait">
<img :src="form.headPortrait" style="height:120px;width:120px;border-radius:50%;"/>
</el-form-item>
事件
//显示头像
showImg() {var id = sessionStorage.getItem("userId"); this.$http.post(this.api.userQueryHeadPortraitById+id).then(res => {if (res.data.code == "200") {this.form.headPortrait = "data:image/png;base64,"+res.data.body;}});
}
Java实现图片上传到数据库,并把上传的图片读取出来相关推荐
- 史上最全数据库笔记(上)
一. 为什么使用SQL数据库? 数据库又称作数据集合,如果没有数据库管理人员需要一条一条的进行输入数据,于是有人发明了一条C语言语句,可以循环使用(增删改查)比如双十一的购物车就是数据库的体现,把想 ...
- java学习day61(乐友商城)品牌新增、FastDFS实现图片上传
1.品牌的新增 昨天我们完成了品牌的查询,接下来就是新增功能.点击新增品牌按钮 Brand.vue页面有一个提交按钮: 点击触发addBrand方法: 把数据模型之的show置为true,而页面中有一 ...
- mysql如何上传照片_MySQL数据库之图片上传存储数据库的2种方法讲解(Mysql)
本文主要向大家介绍了MySQL数据库之图片上传存储数据库的2种方法讲解(Mysql) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 数据库Mysql存储,读取图片 在项目中,很 ...
- java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来
在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...
- fileUpload实现普通表单和file图片上传到数据库
fileUpload实现普通表单和file图片上传到数据库 效果图: 实现 jsp:页面 servelt:控制器 service:逻辑操作 dao:数据库操作 domain:javaBean类 首先需 ...
- java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...
文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术 如题:文件信息的批量导入-- 项目中经常会遇到客户的一些单表信息的数据批量导入,也就是提供定制Excel表,再把Excel表中 ...
- html上传图片至数据库,Django 图片上传到数据库 并调用显示
环境:Django2.0 Python3.6.4 建立项目,数据库设置,就不说了. 直接上代码: 在models.py中,需要建立模型,这里使用了ImageField字段,用来存储图片路径,这个字段继 ...
- C#:将图片文件上传到数据库两种方法。
(推荐)方法1: 将图片复制到指定文件夹,在数据库中存储图片路径,通过读取路径来显示图片. string str;private void toolStripButton1_Click(object ...
- asp如何将图片文件上传到mysql数据库中_怎样才能利用ASP把图片上传到数据库
欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧! ASP(Active Server Pages)是Microsoft很早就推出的一种WEB应用程 ...
- Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图
Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图 1.上传图片并返回灰度图功能 由于使用的springboot开发,直接写一个upload接口供图片上传,以下是spri ...
最新文章
- 进阶学习(3.13) Proxy Pattern 代理模式
- HDU 6108.小C的倍数问题 (2017百度之星程序设计大赛 - 初赛(A)1001)
- gcc编译c程序,既然第一步把头文件包含进来了为什么还要进行第四步链接,链接的是什么?...
- 一个可以使用的公用MQTT测试服务器
- python如何处理异常,让程序不结束继续运行?
- 归类练习的有效性思考
- undefined reference to “boost” in Qt—Ubuntu
- 无心剑中译叶芝诗17首
- 60-10-040-命令-数据的路径间迁移kafka-reassign-partitions.sh
- centos卸载nvidia驱动_nvidia驱动的卸载和重新安装
- 密歇根州立大学计算机专业排名,密歇根州立大学优势专业及优势专业排名(QS世界排名)...
- xshell复制粘贴快捷键
- 电驴连接服务器显示无响应,请问使用电驴时,服务器无响应,怎么解决?
- 2010年3月份中国物流与采购联合会发布中国制造业采购经理指数为55.1%
- 达梦数据库兼容Oracle之SQL语法(一)
- 苹果13防水吗 苹果13颜色哪个好看
- python 单词纠错_用 Python 实现英文单词纠错功能
- 读List源码之Vector,ArrayList,LinkedList
- 关于移动Web性能的5个神话(转)
- vue面试题目(更新版)