Asp.Net在SqlServer中的图片存取技术 [转]


在使用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 - PullToRefresh
4、scala言语基础学习五
5、ClientScript.GetCallbackEventReference实现局部刷新


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号