数据库实体类:

package com.easy.kotlin.picturecrawler.entityimport java.util.*
import javax.persistence.*@Entity
@Table(indexes = arrayOf(Index(name = "idx_url", unique = true, columnList = "url"),Index(name = "idx_category", unique = false, columnList = "category")))
class Image {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)var id: Long = -1@Versionvar version: Int = 0@Column(length = 255, unique = true, nullable = false)var category: String = ""var isFavorite: Int = 0@Column(length = 255, unique = true, nullable = false)var url: String = ""var gmtCreated: Date = Date()var gmtModified: Date = Date()var isDeleted: Int = 0  //1 Yes 0 Novar deletedDate: Date = Date()@Lobvar imageBlob: ByteArray = byteArrayOf()/* 0-Baidu  1-Gank */var sourceType: Int = 0override fun toString(): String {return "Image(id=$id, version=$version, category='$category', isFavorite=$isFavorite, url='$url', gmtCreated=$gmtCreated, gmtModified=$gmtModified, isDeleted=$isDeleted, deletedDate=$deletedDate)"}
}
其中的 @Lob  var imageBlob: ByteArray = byteArrayOf() 这个字段存储图片的 Base64内容。

存库代码

                val Image = Image()Image.category = "干货集中营福利"Image.url = urlImage.sourceType = 1Image.imageBlob = getByteArray(url)logger.info("Image = ${Image}")imageRepository.save(Image)

其中的getByteArray(url) 函数:

    private fun getByteArray(url: String): ByteArray {val urlObj = URL(url)return urlObj.readBytes()}

前端 html 展示图片代码:

{title: '图片',field: 'imageBlob',align: 'center',valign: 'middle',formatter: function (value, row, index) {// var html = "<img onclick=downloadImage('" + value + "') width='100%' src='" + value + "'>"var html = '<img onclick="downBase64Image(this.src)" width="100%" src="https://img-blog.csdnimg.cn/2022010623525946996.jpg' + value + '"/>'return html}}

点击下载 js :

function downloadImage(src) {var $a = $("<a></a>").attr("href", src).attr("download", "sotu.png");$a[0].click();
}function downBase64Image(url) {var blob = base64Img2Blob(url);url = window.URL.createObjectURL(blob);var $a = $("<a></a>").attr("href", url).attr("download", "sotu.png");$a[0].click();
}function base64Img2Blob(code) {var parts = code.split(';base64,');var contentType = parts[0].split(':')[1];var raw = window.atob(parts[1]);var rawLength = raw.length;var uInt8Array = new Uint8Array(rawLength);for (var i = 0; i < rawLength; ++i) {uInt8Array[i] = raw.charCodeAt(i);}return new Blob([uInt8Array], {type: contentType});
}

或者:

function downloadFile(fileName, content) {var aLink = document.createElement('a');var blob = base64Img2Blob(content); //new Blob([content]);var evt = document.createEvent("HTMLEvents");evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错aLink.download = fileName;aLink.href = URL.createObjectURL(blob);aLink.dispatchEvent(evt);
}

MySQL 直接存储图片并在 html 页面中展示,点击下载相关推荐

  1. html显示mysql图片路径_MySQL MySQL 直接存储图片并在 html 页面中展示,点击下载 _好机友...

    数据库实体类:package com.easy.kotlin.picturecrawler.entity import java.util.* import javax.persistence.* @ ...

  2. 将页面中的指定 div 下载为图片

    文章目录 1. 下载页面div为本地图片 2. 下载页面 div 为本地图片并添加水印 1. 下载页面div为本地图片 要将页面中的指定 div 下载为图片,可以使用 JavaScript 的 htm ...

  3. javaWeb-百斯特电子商城-在jsp页面中侧边栏点击,右边进行变化(java实现)(持续完善)

    (javaWeb-百斯特电子商城-在jsp页面中侧边栏点击,右边进行变化(java实现)(持续完善) 1.问题描述: 2.开发环境:+解决思想+建议+注意 3.问题解决 3.1项目结构 3.资源下载( ...

  4. 如何把python可视化到前端_python数据可视化的效果如何在web页面中展示_北京可视化股票...

    有什么APP可以展示可视化的任务进度 可视化任务进度软件,使用敬业签,具体可视有事项开始时间,进度及人.还有结束时间以及人员处理速等等,更多功能如下: 1.敬业签是一款功能比较全面的桌面便签软件,分为 ...

  5. java mysql blob 存储图片_Java操作mysql存储图片

    http://bbs.chinaunix.net/archiver/tid-2289421.html 1把图片当成一个二进制流就可以了 .mysql中有可以存储很大的2进制流文件.用的类型是: 我们要 ...

  6. Packet for query is too large(1767212 1048576)mysql在存储图片时提示图片过大

    原网址:http://blog.csdn.net/bigbird2012/article/details/6304417 错误现象:Packet for query is too large(1767 ...

  7. php中使用mysql_fetch_array输出数组至页面中展示

    用的是CI框架,很好的MVC结构 在Model层 1 public function showProteinCategory(){ 2 $sql = "SELECT DISTINCT pro ...

  8. 在html页面中展示pdf文件,实现在线阅读

    参考文章:1.http://blog.csdn.net/broze/article/details/6743314            2.http://www.pdfobject.com/    ...

  9. 页面中展示PDF(转成Swf文件)

    由于直接在页面上展示PDF会有编码困难及不安全等问题,所以想到先利用SWFTOOLS工具把PDF转成SWF格式的Flash文件然后在页面上利用ASP.NET自带的Flash播放器展示Flash文件,这 ...

最新文章

  1. 手机端校验的那些事情(简单实例)
  2. 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)
  3. 终止一切网上销售和广告?电子烟悦刻天猫旗舰店却仍可购买
  4. mysql、orcl中database、schema、user之间的关系
  5. 从高斯消元到矩阵的三角分解(LU)
  6. JavaWeb:重定向(redirect)和转发(forward)的区别
  7. JavaSE基础——网络编程
  8. 1051. Pop Sequence (25)
  9. 架构之美第八章-软件架构的含义
  10. afudos备份bios不动_afudos备份bios不动_老鸟经验之谈刷坏BIOS后的2种恢复方法
  11. 法国警告Nobelium网络间谍攻击法国组织
  12. 细数SAP Business One主流实施与服务商
  13. 测试工程师如何规划自己的职业生涯
  14. 一键彻底关闭Win10自带Windows Defender杀毒软件
  15. CSS 选择器 CSS3选择器
  16. ==和equals判断两个字符串是否相等
  17. android 模仿微信读书,Flutter 模仿微信读书实现案例
  18. 逻辑回归三部曲——逻辑回归(logistics regression)原理-让你彻底读懂逻辑回归
  19. linux ps w,Linux监控命令—who,w,ps
  20. 安装Python2.7

热门文章

  1. php yii 命令行,命令行模式(Command)
  2. 计算机多重网络intnet,南昌大学计算机网络实验(全).doc
  3. mysql索引_MySQL索引介绍和实战
  4. matlab 分隔线,matlab字符分割方法
  5. mysql 5.7 ssd_6T!阿里云MySQL 5.7 存储空间再刷新高
  6. vuex 源码分析_前端入门之(vuex-router-sync解析)
  7. ajax为什么返回html标签,AJAX与特定值后返回的HTML标签
  8. 《软件项目管理(第二版)》期中考试试题总结/复习资料
  9. poj 1386 Play on Words(有向图欧拉回路)
  10. js中的new file_JS中的new操作符