图片保存到数据库blob字段

SpringBoot+Vue 图片上传保存到类型为BLOB类型的Oracle数据库(数据库可以直接看图片) SpringBoot+Vue 图片上传到BLOB类型的Oracle数据库 阅读详情

前言

目前个人总结图片保存有三种方式:
1.大型有关图片的项目一般都是保存到一个第三方的云服务器上,数据库保存图片的地址就可以了。
2.也可以将图片上传到自己项目所在的服务器上,数据库保存图片的地址就可以了。
3.第三种就是将图片保存到数据库的blob字段里。
今天主要说第三种方式。

图片保存

dao层代码如下:

public void doSave(Map<String, Object> parasMap) throws Exception {
        StringBuffer sql = new StringBuffer();
        Connection conn = null;
        PreparedStatement pst = null;

        try{
            conn = this.getConnection();
            sql.append("insert into picture_t  ");
            sql.append("(id,name,picture)   ");
            sql.append("values(picture_s.nextval,'"+parasMap.get("name")+"',?)  ");

            pst = conn.prepareStatement(sql.toString());
            File file =  new File(parasMap.get("src"));
            FileInputStream fStream = new FileInputStream(file);
            pst.setBinaryStream(1, fStream, (int) file.length());
            pst.execute();

        }catch(Exception e){
            System.out.pring(e);
        }finally{
            close(pst,conn);
        }
}

上边的代码中可以看到,参数parasMap中包含图片的路径(parasMap.get(“src”)),将图片路径利用文件输入流读取图片保存到数据库中,数据库中picture字段就是blob类型。

图片读取展现到页面

dao层代码正常写,从数据库select图片所在的blob字段,用rs.getBlob(“picture”)获取并保存到Map中然后添加到list中即可。
action中接收到该list后做如下处理:

public void queryImg(HttpServletRequest request,
            HttpServletResponse response) throws Exception{

        String id = request.getParameter("id");
        String imgIndex = request.getParameter("imgIndex");
        List<Map<String,Object>>  list =  bo.queryImgById(id);
        Blob blob=(Blob) list.get( Integer.parseInt(imgIndex)).get("picture");
        int length = (int) blob.length();
        byte[] bImage = new byte[length];
        InputStream is = new BufferedInputStream(blob.getBinaryStream());
        is.read(bImage, 0, length);
        OutputStream out = response.getOutputStream(); 
        out.write(bImage);
        out.flush(); 
        out.close();
        is.close();
    }

上边的代码中可以看出将图片从list里取出来后强转为Blob类型,这个类型是java自带的类。
页面的img标签的src要请求到这个方法中,如下:

<img src="/picture.do?method=queryImg&id=1&imgIndex=2">

注意事项

以上方法就可以将图片保存到数据库并回显到页面上。难点在于如何同时处理多张图片。对于保存来说就是写个循环保存即可,而对于回显来说,就要先写一个方法,查询一共有多少张图片回显,比如有3张图片,那么在页面上就要有三个
<img src="/picture.do?method=queryImg&id=1&imgIndex=2">
每个img标签的不同之处在于向后端传的参数imgIndex,分别为0、1、2,
这样就可以同时回显3张图片了。

MFC使用ODBC把图片写入blob字段 第一,添加一个基于CRecordSet的类为CMyRecordset1,设置如下图片。 第二,读图片文件,写入blob字段 CDatabase db; // db.Open(NULL, FALSE, FALSE, "ODBC;DSN=kdmysql;UID=root;PWD=111"); db.Open(NULL,FALSE,FALSE,"ODBC;DSN=kdmysql;UID=root;... 阅读详情

相关推荐

更多 LSTM 变种——应用于 CMAPSS 数据集

本文并模型介绍,只是把一些比较火的技术,像双向注意力机制,自注意力机制这样的比较火的内容,简单的和LSTM堆叠,结果发现效果都不如最基础的,这里作者将本人代码及实现结果,进行展示,给各位想更改LSTM的朋友一些。

2301_77491330的博客 1765

Oracle/MySQL数据库中插入图片BLOB字段的方法

1./opt/pic/目录下存放图片文件 2.先创建表,存储图片的字段为BLOB类型,创建表可以用sql也可以用navicat等工具,先插入数据填入其他字段,BLOB为null不填 CREATE TABLE PICTURE_SRC ( "ID" NUMBER NOT NULL ENABLE, "IDENTIFICATION" VARCHAR2(255), "PROVINCE" VARCH

sunny05296的博客 1万+

整合WGCNA、机器学习和孟德尔随机化

(G)通过蛋白质免疫印迹法(Western blot)测定的 UT-B(由 SLC14A1 编码)、ARHGEF38、NEFH、MSMB、KRT23 和 KRT15 在前列腺癌肿瘤组织和癌旁非癌组织中的蛋白质表达水平。本研究利用来自基因表达综合数据库(GEO)的数据集筛选差异表达基因(DEGs),并采用加权基因共表达网络分析(WGCNA),以识别在模块中与前列腺癌高度相关的驱动基因。(F)蓝绿色模块中的模块成员关系(MM)与前列腺癌(PCa)的基因显著性(GS)的散点图。(D)6 个基因之间的相关性分析。

多组・学・多组学 1137

若依改变上传文件路径,结果预览不出来了

但是我需要做的是,上传后保存在临时目录,并且不存入数据库,等表单提交了确定了最终需要保存的文件时再写入数据库。当时第一反应就是"不会必须先保存到数据库吧",但是想了一下就推翻了,不会这么傻逼的。于是我改了下代码,结果文件是没问题,正常保存下来了,但是预览却出错了,报404。可以看到,这里是直接指定了这个RuoYiConfig.getProfile()这个路径的。我是因为项目需要,之前若依上传文件是直接将上传好的文件保存在了数据库中。我的逻辑是->upload接口先保存到临时目录,表单提交后再写入数据库。

weixin_64772672的博客 2108

从AD到HFSS:Gerber文件驱动的PCB三维电磁仿真全流程解析

本文详细解析了从AD到HFSS的Gerber文件驱动的PCB三维电磁仿真全流程,重点介绍了Gerber文件作为桥梁的重要性、AD端Gerber文件导出实战指南、HFSS 3D Layout导入技巧及高级问题排查方法。通过实际案例和技巧分享,帮助工程师高效完成PCB电磁仿真,提升设计验证效率。

weixin_33735077的博客 260

AI编程工具选哪个更高效?开发者深度评测

无论是代码生成、错误修复,还是架构设计,AI都能提供强大的辅助能力。然而,市面上AI编程工具众多,如何选择最适合自己的?本文将从代码质量、响应速度、多语言支持、集成能力等多个维度,为你解析2025年最主流的几款AI编程工具,帮助你做出更高效的选择。根据2025年最新调研数据,全球超过85%的开发者正在使用AI编程工具辅助开发,相比2023年增长了近40%。合理利用AI,能让你的开发效率提升数倍,但真正的核心竞争力,仍然在于你的编程思维和解决问题的能力。:技术较强的开发者、重视数据隐私的企业。

1854

基于若依VUE实现图片上传保存到数据库和下载预览功能

图片上传 前台代码 上传图片表单部分 <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px" enctype="multipart/form-data"> <el-form-item lab

yuyuchi的博客 1万+

基于Simulink的双向DC-DC变换器在储能系统中的应用仿真

摘要:本文详细介绍了基于Simulink的双向DC-DC变换器在光伏储能系统中的仿真实现。主要内容包括:1)采用非隔离型双向Buck-Boost拓扑作为储能系统枢纽;2)针对750V直流微网中的20kWh锂电池接口场景进行建模;3)详细阐述双闭环控制器设计(电压外环+电流内环)、工作模式判断逻辑等关键步骤;4)通过仿真验证了系统在功率阶跃和模式切换下的性能。文章提供了完整的建模流程和控制方法,为储能系统接口设计提供了实用参考。

amy_mhd的博客 178

Oracle 如何将图片插入BLOB字段

开发要求把两张图片插入到表中,趁机学了下oracle把图片插入blob字段的方法 1. 在操作系统创建一个oracle用户可以访问的目录 mkdir -p /home/oracle/picture 2. 把图片上传到该目录并允许oracle用户访问 3. 在数据库中创建目录 create or replace directory images as '/home/ora...

Hehuyi_In的博客 8062

3D iToF深度分辨率测量

本文展示了RGB-D传感器在三维测量中的高精度表现。标靶深度图显示其具备清晰、低噪、无干扰的特性,点云数据完整度高且轮廓分明。该技术已成功应用于物流(体积测量误差<1%)、工业(高反光部件装配检测)和农业(果蔬成熟度分级)等领域,验证了其硬件和算法的可靠性,能够满足不同场景下的三维测量需求。

dream it possible 252

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】

Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。

一键难忘的博客 3万+

将图片保存至Oracle数据库Blob字段中

用FileUpLoad控件上传图片并将图片转换为byte[]。            Stream s = upload.PostedFile.InputStream;             BinaryReader br = new BinaryReader(s);            byte[] myByte = new byte[s.Length];            br

大巧不工 7769

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库

转自:http://heisetoufa.iteye.com/blog/262798   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using Syst

dreamgis的专栏 1614

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

springMVC实现异步上传图片,并保存到Oracle数据库blob类型的字段中

如下: 将图片保存到oracle数据库中 只返回给前端一个图片ID //图片上传保存到oracle blob类型字段中 @Override @RequestMapping(value = &quot;/saveTrafficJeevesImgs&quot;, method = RequestMethod.POST) public Object saveTraff...

JT1992413的博客 1832

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库(转)...

需要打开源码改一下数据源和表名还有字段名 C#代码 usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usi...

weixin_30552811的博客 186

图片上传到数据库,保存到Blob字段中

需求:从系统上传图片,将图片信息保存到数据库的blob字段中,并提供照片的查询接口 数据表结构如下: controller: package com.success.controller; import .. /** * 系统图标切换 */ @RestController @Slf4j @RequestMapping("/systemPageLogo") public class SystemPageLogoController { @Autowired privat..

weixin_40052304的博客 1613

插入图片到数据库(BLOB大字段保存对象)

key words : blob , oracle ,插入图片 come from  here 显示blob try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); Connection con=DriverManager.getConnection("jdbc:odbc:Multimedi

俊哥 1465

blob大小限制 oracle_java 处理oracle blob字段(图片)大小 再保存到数据库

在java中 查询一个表的 图片字段(blob类型)判断该图片大小,如果大于100K,那么就把该图片处理成100K我现在做到获取该图片但是 处理图片大小遇到了问题出现错误的地方:src = javax.imageio.ImageIO.read(inputStream);我的代码如下package com.hinge.tools;import java.awt.image.BufferedImag...

weixin_39556590的博客 981

C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB

C# winform 窗体应用程序之图片上传Oracle数据库保存字段BLOB 我用的数据库是Oracle,就目前来看,许多数据库现在都倾向于Oracle数据库,对ORACLE数据库基本的操作也是必须要掌握的,函数以及语法。今天我们来讲解一下如何使用c#编程语言完成Winform窗体上传图片到数据库,以及从数据库读取BLOB文件显示在窗体里,这里要用到的一个知识就是数据的转换。 一、连接数据库...

weixin_30420305的博客 357

java中 查询一个表的 图片字段(blob类型) 处理图片大小后保存到数据库

在java中 查询一个表的 图片字段(blob类型) 判断该图片大小,如果大于100K,那么就把该图片处理成100K 我现在做到获取该图片 但是 处理图片大小遇到了问题 出现错误的地方:src = javax.imageio.ImageIO.read(inputStream); 我的代码如下 package com.hinge.tools; impo...

quanwei132 393

java实现从一个数据库导入数据到另外一个数据库以及将大量图片导入到数据库中jdbc实现方法

需求背景 在某地客户现场,遇到一个需求,将一个数据库中的某个表的数据导入到另外一台服务器上的数据库,并且表中包含blob字段,在使用kettle失败的情况下,shell脚本咱又不熟悉,作为一个java程序猿,紧急使用java的jdbc实现处理此业务,当然程序还是有很多可以完善的地方,此例子比较适合新人练手学习。 第一个类:将数据从一个库导出写入另外一个库 这里假定有数据库A和B,某个表包含Blob...

zhangbinch的博客 4099

c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库...

需要打开源码 改一下数据源和表名还有字段名 [code="c#"]using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windo...

黑色头发 472

标准的hibernate存取blob和clob字段的方法

昨在颇为郁闷,利用hibernate保存图片到blob字段时出现保存成功,但读出来的确是空数据的问题;但回家一试,竟然是OK的,不知哪个环节出了问题,但总算是圆满结局~ 程序代码Transaction tx=session.beginTransaction();byte[] b=new byte[1024];img.setTitle(title);img.setAdddate(new 

spring028的专栏 687

Android 保存图片到Sqlite 数据库并从数据库中获得图片

SQlite数据库中可以直接保存图片,有两点说明: 1.建数据库表时,保存图片的表字段类型为BLOB。 2.图片类型为Bitmap 保存到数据库中的代码如下: final ByteArrayOutputStream os = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.PNG,

minyou_1314的专栏 5662
上一篇: Activiti工作流学习(四)
下一篇: Activiti工作流学习(五)
老贼大魔王
博客等级 码龄10年 23粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值