软件问答

软件问答

设计软件问答为您提供设计软件的相关问题咨询与解答,印刷案例规格及印刷报价,让您实时了解设计软件的各类相关问题及印刷相关问题,并提供设计时的注意事项,为您提供各设计软件的相关问题解决方案

当前位置:网站首页 > 印刷问答 > 软件问答 > 正文

数据库如何存取图片?

吉印通 2021-05-30 05:04 776

数据库存图片的方式以下两种:

在数据库中存储图片文件的文件名或存储路径(本地路径或者网络路径)这是最常用的方式,即是将图片的存储的完整路径或文件名以字符串的方式存入到数据库中,读取效率高、而且便于维护pic文件。实现的方法也比较简单,拿最常见的使用场景来说吧,比如用户注册时,需要他上传了一张照片,常见做法就是使用文件控件FileUpload让用户选择电脑的上面的图片,然后将其选择的图片所在的路径及文件名获取,将文件上传后同时将文件名保存到数据库对应的表中,显示图片时只需要从数据库中获取文件名并构造完整路径即可。

ASP.NET

代码如下:

//获取FileUpload控件选取图片后的文件路径

strng filepath=FileUpload1.PostedFile.FileName;

//获取图片文件名,即从图片路径字符串中获取最后\\的那段

string filename=filepath.Substring(filepath.LastIndexOf("\\")+1);

//然后执行文件上传pic文件,将文件保存到服务器指定的目录,如在程序目录下建立一个PIC文件夹保存文件

FileUpload1.PostedFile.SaveAs(Server.MapPath("PIC/")+filename);

上传成功后,将文件名filename字符串插入数据库即可pic文件。

显示时将filename从数据取出,用Image1.ImageUrl="PIC/"+filename 显示pic文件。

将图片文件转为二进制文件流保存到数据库,显示时再二进制转为文件这种方式很少用,因为图片包含的信息比较多,转为二进制后存储的内容大,占用空间,而且需要转换,费时好资源pic文件。

保存图片的 核心代码如下:

//文件路径

string picturePath = @"D:\1.jpg";

//创建FileStream对象

FileStream fs = new FileStream(picturePath, FileMode.Open, FileAccess.Read);

//声明Byte数组

Byte[] mybyte = new byte[fs.Length];

//读取数据

fs.Read(mybyte, 0, mybyte.Length);

fs.Close();

//转换成二进制数据 mybyte 保存到数据库

SqlParameter prm = new SqlParameter

("@blobdata", SqlDbType.VarBinary, mybyte.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, mybyte);

command.Parameters.Add(prm);

//打开数据库连接

connection.Open();

command.ExecuteNonQuery();

connection.Close();

读取图片的核心代码如下:

//打开数据库连接

connection.Open();

//创建SQL语句

string sql = "select BLODID,BLOBData from Images order by BLODID";

//创建SqlCommand对象

SqlCommand command = new SqlCommand(sql, connection);

//创建DataAdapter对象

SqlDataAdapter dataAdapter = new SqlDataAdapter(command);

//创建DataSet对象

DataSet dataSet = new DataSet();

dataAdapter.Fill(dataSet, "BLOBTest");

int c = dataSet.Tables["BLOBTest"].Rows.Count;

if (c > 0)

Byte[] mybyte = new byte[0];

mybyte = (Byte[])(dataSet.Tables["BLOBTest"].Rows[c - 1]["BLOBData"]);

MemoryStream ms = new MemoryStream(mybyte);

//显示图片

pictureBox1.Image = Image.FromStream(ms);

connection.Close();

  • 沈阳画册印刷

    沈阳画册印刷

    沈阳画册印刷厂家,画册印刷公司为您提供画册印刷咨询,画册印刷案例,画册印刷规格及画册印刷报价,让您实时了解画册印刷厂家的最新规格及报价,并提供画册印刷时的注意事项,印刷出让您满意的画册印刷产品。

    2023-01-14 116

  • 水印印刷机原理的简单介绍

    水印印刷机原理的简单介绍

    1、工做原理是圆压圆,油墨通过墨辊传递使图文部门至印刷用铝基版材外表的亲墨部门,再转移至橡皮布,通过压印滚筒与橡皮布滚筒之间适宜的压力转移到纸张或其它承印物上,就是我们看到印品了。2、水印机印刷的流程接纳前缘吸附滚轮摩擦体例送纸,操纵每个印...

    2022-12-02 527

  • 80克卷筒工程复印纸的规格有哪些?

    80克卷筒工程复印纸的规格有哪些?

    有四种规格。安兴纸业纸张生产是全进口木浆,进口的机器制作。...

    2022-11-12 72

  • 看,丰收的色彩

    看,丰收的色彩

    来源:石榴云/新疆日报监制:刘冰审核:张爱兰责编:李建苹编辑:都芃相关链接吉印通开幕!第七届中国—亚欧博览会线上观展通道开启疫情防控专家谈丨新疆疾控专家:中高风险区居民领取配送物品时要注意这几点爱旅游·爱上诗画伊犁...

    2022-09-22 117

  • 关于北京画册吉印通
的信息

    关于北京画册吉印通 的信息

    021yin.com。人保寿险如果您有实力有梦想,想挑战高薪,想有最高的福利待遇,请加盟中国人保!一、招聘年龄:2*-**岁,大专以上学历,两年工作经验,无保险经验从事过销售人员优先。具有很好的语言表达能力及沟通能力,经培训后,能独...

    2022-08-24 113

  • 上海企业台历印刷的简单介绍

    上海企业台历印刷的简单介绍

    在电子时代,一款纸质台历在首发20小时内狂销2万册以上、自上市以来多次卖断货,堪称“神话般的存在”。创造这一神话的“爆品”,名叫“单向历”,是“单向空间”打造的明星产品。1所谓“单向空间”,其前身是200*年底由*位年轻的媒体人在圆明...

    2022-08-15 119