• 图片,二进制,oracle数据库


    图片在oracle数据库中一般以二进制存在,存储类型是blob,然而clob类型一般存储的是大于4000的字符,不能用来存储图像这样的二进制内容,下面展示一下实现图像,二进制,oracle 数据库的应用过程

    公共方法:

        //将图片以二进制流
            public byte[] SaveImage(String path)
            {
                FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
                BinaryReader br = new BinaryReader(fs);
                byte[] imgBytesIn = br.ReadBytes((int)fs.Length);  //将流读入到字节数组中
                return imgBytesIn;
            }

    存入数据库:

     using (OracleConnection con = new OracleConnection(conStr))
                {
                    con.Open();
                    string path = @"F:三门1.封面.JPG";
                    byte[] bytes = SaveImage(path);
                    string strGetPicture = "insert into aq (content) values(:picByte)";
                    using (OracleCommand cmd = new OracleCommand(strGetPicture,con))
                    {
                        cmd.Parameters.Add(":picByte",OracleDbType.Blob);
                        cmd.Parameters[":picByte"].Value = bytes;
                        cmd.ExecuteNonQuery();
                    }
                }

    从数据库取出并且转化存入本地指定地址:

     using (OracleConnection con = new OracleConnection(conStr))
                {
                    con.Open();
                    string strGetPicture = "select t.content from AQ t";//这里假设只有一条记录
                    using (OracleCommand cmd = new OracleCommand(strGetPicture, con))
                    {
                        string strPath = @"F:imagea.tif";
                        object reader = cmd.ExecuteScalar();//如果有多条可以写成 object reader = chunkReader["content"]; 类似这样的形式
                        byte[] bytes = (byte[])reader;//读到的内容转化成字节流
    
                        System.IO.MemoryStream ms = new MemoryStream(bytes);//创建流
                        System.Drawing.Image img = System.Drawing.Image.FromStream(ms);//从流中创建image对象
                        img.Save(strPath);//将image对象保存成图片存入指定位置
                    }
                }
  • 相关阅读:
    C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll]
    php框架
    ExtJS带验证码登录框[新增回车提交]
    ant 读取环境变量的值
    Apache Velocity实现模板化
    23种设计模式概述
    android资源下载
    无序hashset与hashmap让其有序
    PermGen space错误解决方法
    设计模式之代理模式(Proxy)
  • 原文地址:https://www.cnblogs.com/llcdbk/p/5212934.html
Copyright © 2020-2023  润新知