技术选型

技术选型:
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实现图片上传到数据库,并把上传的图片读取出来相关推荐

  1. 史上最全数据库笔记(上)

    一.  为什么使用SQL数据库? 数据库又称作数据集合,如果没有数据库管理人员需要一条一条的进行输入数据,于是有人发明了一条C语言语句,可以循环使用(增删改查)比如双十一的购物车就是数据库的体现,把想 ...

  2. java学习day61(乐友商城)品牌新增、FastDFS实现图片上传

    1.品牌的新增 昨天我们完成了品牌的查询,接下来就是新增功能.点击新增品牌按钮 Brand.vue页面有一个提交按钮: 点击触发addBrand方法: 把数据模型之的show置为true,而页面中有一 ...

  3. mysql如何上传照片_MySQL数据库之图片上传存储数据库的2种方法讲解(Mysql)

    本文主要向大家介绍了MySQL数据库之图片上传存储数据库的2种方法讲解(Mysql) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 数据库Mysql存储,读取图片 在项目中,很 ...

  4. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  5. fileUpload实现普通表单和file图片上传到数据库

    fileUpload实现普通表单和file图片上传到数据库 效果图: 实现 jsp:页面 servelt:控制器 service:逻辑操作 dao:数据库操作 domain:javaBean类 首先需 ...

  6. java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...

    文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术 如题:文件信息的批量导入-- 项目中经常会遇到客户的一些单表信息的数据批量导入,也就是提供定制Excel表,再把Excel表中 ...

  7. html上传图片至数据库,Django 图片上传到数据库 并调用显示

    环境:Django2.0 Python3.6.4 建立项目,数据库设置,就不说了. 直接上代码: 在models.py中,需要建立模型,这里使用了ImageField字段,用来存储图片路径,这个字段继 ...

  8. C#:将图片文件上传到数据库两种方法。

    (推荐)方法1: 将图片复制到指定文件夹,在数据库中存储图片路径,通过读取路径来显示图片. string str;private void toolStripButton1_Click(object ...

  9. asp如何将图片文件上传到mysql数据库中_怎样才能利用ASP把图片上传到数据库

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧! ASP(Active Server Pages)是Microsoft很早就推出的一种WEB应用程 ...

  10. Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图

    Java服务器部署基于OpenCV的C++图像处理项目(三)图片上传并返回处理图 1.上传图片并返回灰度图功能 由于使用的springboot开发,直接写一个upload接口供图片上传,以下是spri ...

最新文章

  1. 进阶学习(3.13) Proxy Pattern 代理模式
  2. HDU 6108.小C的倍数问题 (2017百度之星程序设计大赛 - 初赛(A)1001)
  3. gcc编译c程序,既然第一步把头文件包含进来了为什么还要进行第四步链接,链接的是什么?...
  4. 一个可以使用的公用MQTT测试服务器
  5. python如何处理异常,让程序不结束继续运行?
  6. 归类练习的有效性思考
  7. undefined reference to “boost” in Qt—Ubuntu
  8. 无心剑中译叶芝诗17首
  9. 60-10-040-命令-数据的路径间迁移kafka-reassign-partitions.sh
  10. centos卸载nvidia驱动_nvidia驱动的卸载和重新安装
  11. 密歇根州立大学计算机专业排名,密歇根州立大学优势专业及优势专业排名(QS世界排名)...
  12. xshell复制粘贴快捷键
  13. 电驴连接服务器显示无响应,请问使用电驴时,服务器无响应,怎么解决?
  14. 2010年3月份中国物流与采购联合会发布中国制造业采购经理指数为55.1%
  15. 达梦数据库兼容Oracle之SQL语法(一)
  16. 苹果13防水吗 苹果13颜色哪个好看
  17. python 单词纠错_用 Python 实现英文单词纠错功能
  18. 读List源码之Vector,ArrayList,LinkedList
  19. 关于移动Web性能的5个神话(转)
  20. vue面试题目(更新版)

热门文章

  1. [转]趣文:编程语言伪简史
  2. 如何在blender中导入插件(模组)
  3. uniapp 上传附件
  4. java无法调用音频设备_win10下程序无法录音或使用麦克风
  5. CPM CPT CPC CPA CPS广告营销模式
  6. 七夕最浪漫的表白,最真挚的感情(Python代码实现)
  7. Java 利用钉钉机器人发送消息并艾特指定人
  8. Java读取文件内容
  9. 免费 xshell 和xftp 下载
  10. docker从零开始(四)集群初体验,docker-machine swarm