在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
一,上传并存入SqlServer
数据库结构
createtabletest
{
ididentity(1,1),
FImageimage
}
相关的存储过程
CreateprocUpdateImage
(
@UpdateImageImage
)
As
InsertIntotest(FImage)values(@UpdateImage)
GO
在UpPhoto.aspx文件中添加如下:
<inputid="UpPhoto"name="UpPhoto"runat="server"type="file">
<asp:Buttonid="btnAdd"name="btnAdd"runat="server"Text="上传"></asp:Button>
然后在后置代码文件UpPhoto.aspx.cs添加btnAdd按钮的单击事件处理代码:
privatevoidbtnAdd_Click(objectsender,System.EventArgse)
{
//获得图象并把图象转换为byte[]
HttpPostedFileupPhoto=UpPhoto.PostedFile;
intupPhotoLength=upPhoto.ContentLength;
byte[]PhotoArray=newByte[upPhotoLength];
StreamPhotoStream=upPhoto.InputStream;
PhotoStream.Read(PhotoArray,0,upPhotoLength);
//连接数据库
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
SqlCommandcmd=newSqlCommand("UpdateImage",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
cmd.Parameters["@UpdateImage"].Value=PhotoArray;
//如果你希望不使用存储过程来添加图片把上面四句代码改为:
//stringstrSql="Insertintotest(FImage)values(@FImage)";
//SqlCommandcmd=newSqlCommand(strSql,conn);
//cmd.Parameters.Add("@FImage",SqlDbType.Image);
//cmd.Parameters["@FImage"].Value=PhotoArray;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
二,从SqlServer中读取并显示出来
在需要显示图片的地方添加如下代码:
<asp:imageid="imgPhoto"runat="server"ImageUrl="ShowPhoto.aspx"></asp:image>
ShowPhoto.aspx主体代码:
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!Page.IsPostBack)
{
SqlConnectionconn=newSqlConnection()
conn.ConnectionString="DataSource=localhost;Database=test;UserId=sa;Pwd=sa";
stringstrSql="select*fromtestwhereid=2";//这里假设获取id为2的图片
SqlCommandcmd=newSqlCommand()
reader.Read();
Response.ContentType="application/octet-stream";
Response.BinaryWrite((Byte[])reader["FImage"]);
Response.End();
reader.Close();
}
}
优质内容筛选与推荐>>
1、asp.net IOS推送消息2、Android IOS WebRTC 音视频开发总结(十七)-- 调试技巧3、UWP Composition API - PullToRefresh4、scala言语基础学习五5、ClientScript.GetCallbackEventReference实现局部刷新