宝哥软件园

访问ASP.NET数据库图片的方法

编辑:宝哥软件园 来源:互联网 时间:2021-09-06

当我们有大量图片或者图片比较大的时候,我们通常的做法可能是保存图片路径,但是不能排除需要将图片直接存储在数据库中的情况,所以此时需要将图片保存在数据库中。这篇文章我就给大家介绍一下:

如何通过FileUpLoad控件将图片保存到数据库,如何通过Button控件从数据库中导出图片

具体步骤如下:

将图片保存到数据库

第一步:首先在数据库中创建一个名为“Images”的表,代码如下:

创建表格图像(roll _ novarchar (12)主键、name _ file varchar (100)、extension varchar (100)、img varbinary (max)、img _ date datetime)可以看到这个表格存储了这些内容:注册号、文件名、文件扩展名、二进制数据和图片的上传时间。

第二步:然后打开Visual Studio,创建一个名为ImageToBinary的空网站。

步骤3:添加一个名为“转换. aspx”的新页面

在这个页面上,我们拖动三个控件:文本框、文件上传、按钮。

界面如图所示:

当然,您也可以选择直接在Conversion.apsx文件中输入这一串代码:

文件序列号ASP : textbox id=' txt rolno ' runat=' server '/ASP 3360 textbox br/选择文件ASP 3360 file upload id=' file upload 1 ' runat=' server '/br/Asp : button id=' button 1 ' runat=' server ' text=' upload ' OnClick=' button 1 _ Click '/步骤4:添加控件后,双击按钮,进入Conversion.apxs.cs文件,并添加以下命名空间:

使用系统;使用系统。数据;使用系统。Data . SqlClient使用系统。IO;使用系统。Web然后在Button1_Click中编写代码,将图片转换成二进制流,通过SQL语句保存到数据库中。

代码如下:

受保护的void Button1_Click(对象发送者,EventArgs e){ if(!文件上传1。hasfile) {response。写入(“未选择文件”);返回;} else {//创建一个对象访问上传的文件,获取上传的文件http postedfile file=fileupload 1 . postedfile;//获取上传文件的文件名和扩展名字符串filename=path . getfilename(file upload 1 . postedfile . filename);字符串扩展名=路径。GetExtension(文件名);//实例化一个长度等于上传文件长度的字节数组byte[]imagetype=new byte[file . content length];//将文件数据读入字节数组file . inputstream . read(imagetype,0,file . content length);//确定图片格式if((扩展名==')。jpg') | |(扩展名=='。png') | |(扩展名=='。gif') | |(扩展名='。BMP '){//使用(sqlconnectionconnection=new sqlconnection(' data source=afod 3-609221015;初始目录=我的数据;集成安全性=真’){连接。open();SqlCommand cmd=new SqlCommand();cmd。连接=连接;string commandText=“插入图像值(@image、@ Rollno、@img、getdate())”;cmd。CommandText=commandTextcmd。命令类型=命令类型。文字;cmd。参数。添加(' @image ',SqlDbType。VarBinary);cmd。参数[“@ image”]。Value=imagetypecmd。参数。添加(' @ Rollno ',SqlDbType。VarChar);cmd。参数['@Rollno']。Value=txtrollno。文字;cmd。参数。添加(' @img ',SqlDbType。VarChar);cmd。参数['@img']。Value=txtrollno。文字;cmd。executionquery();cmd。dispose();连接。close();回应。写入(“导入成功”);}} else {Response。写入(“导入失败”);返回;}}运行结果如下:

此时,我们可以浏览文件夹并添加要存储的图片:

文件导入成功

如果选择了不合格文件,将显示结果:

回到数据库,您可以看到图片已成功添加到数据库:

导出图片

现在让我们看看如何从数据库导出图片。在这里,我将只使用Button控件给出一个简短的概述。

第一步:在Visual Studio中创建一个空网站,并将其命名为ImageToBinary。

第二步:再添加一个新页面,命名为' GetImage.aspx '。在这个页面拖放一个纽扣控件。

第三步:双击按钮,进入" GetImage.aspx.cs ",添加命名空间。

使用系统;使用系统。配置;使用系统数据。SqlClient使用系统IO;按钮1 _点击内编写代码:

受保护的void Button1_Click(对象发送者,事件参数e){ string ScON=配置管理器.AppSettings[' ConnectionString '];SqlConnection objConn=新的SqlConnection(ScON);objConn .open();字符串sql='从图像中选择* ';SqlCommand cmd=new SqlCommand(SQL,Objconn);SqlDataReader dr=cmd .ExecuteReader();while(dr . Read()){ byte[]bytes=(byte[])dr[' img '];FileStream fs=新的FileStream(@ ' e : Images ' dr[' roll _ no ']).jpg ',文件模式。创建,文件访问。写);fs .写入(字节,0,字节。长度);fs .flush();fs .close();}关闭()博士;objConn .close();回应。写('成功导出');}运行结果:

点击"导出":

打开指定的文件夹,图片已经保存在里面了:

最后,如果有需要,你还可以参考这篇文章:如何保存PDF、Word和超过文件到数据库中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+