1using System;
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using System.Data.SqlClient;
12using System.IO;
13
14namespace MyTest

15
{

16 /**//**//**//// <summary>

17 /**//// WebForm1 的摘要说明。

18 /**//// </summary>
19 public class WebForm1 : System.Web.UI.Page

20
{
21 protected System.Web.UI.WebControls.TextBox TextBox1;
22 protected System.Web.UI.WebControls.Button SubmitButton;
23 protected System.Web.UI.HtmlControls.HtmlInputFile UP_FILE;
24 protected System.Web.UI.WebControls.Button butDisplay;
25 protected System.Web.UI.WebControls.TextBox txtPicID;
26 protected System.Web.UI.WebControls.Label lblMessage;
27 string ConnStr = "server=localhost;uid=sa;pwd=;database=MyTest";
28
29
30 private void Page_Load(object sender, System.EventArgs e)

31
{
32
33 }
34

35 Web 窗体设计器生成的代码Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
36 override protected void OnInit(EventArgs e)

37
{
38 //
39 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
40 //
41 InitializeComponent();
42 base.OnInit(e);
43 }
44

45 /**//**//**//// <summary>

46 /**//// 设计器支持所需的方法 - 不要使用代码编辑器修改

47 /**//// 此方法的内容。

48 /**//// </summary>
49 private void InitializeComponent()

50
{
51 this.SubmitButton.Click += new System.EventHandler(this.SubmitButton_Click);
52 this.butDisplay.Click += new System.EventHandler(this.butDisplay_Click);
53 this.Load += new System.EventHandler(this.Page_Load);
54
55 }
56 #endregion
57
58 //存入数据库
59 private void SubmitButton_Click(object sender, System.EventArgs e)

60
{
61 //HttpPostedFile对象,用于读取图像文件属性
62 HttpPostedFile UpFile = UP_FILE.PostedFile;
63 //FileLength变量存储图片的字节大小
64 int FileLength = UpFile.ContentLength;
65
66 try

67
{
68 if(FileLength == 0)

69
{
70 this.lblMessage.Text = "您未选择上传的文件";
71 }
72 else

73
{
74 //创建存储图片文件的临时Byte数组
75 byte[] FileByleArray = new byte[FileLength];
76 //建立数据流对象
77 Stream streamObject = UpFile.InputStream;
78 //读取图像文件数据
79 //FileByleArray为数据储存体,0为数据指针位置、FileLength为数据长度
80 streamObject.Read(FileByleArray,0,FileLength);
81 //数据库操作
82 string query = "INSERT INTO Picture(PicData,PicType,PicDescription,PicSize) VALUES (@PicData,@PicType,@PicDescription,@PicSize)";
83 SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
84
85 //添加各项参数并赋值
86 com.Parameters.Add("@PicData",SqlDbType.Image);
87 com.Parameters.Add("@PicType",SqlDbType.VarChar,50);
88 com.Parameters.Add("@PicDescription",SqlDbType.VarChar,200);
89 com.Parameters.Add("@PicSize",SqlDbType.BigInt);
90 com.Parameters["@PicData"].Value = FileByleArray;
91 com.Parameters["@PicType"].Value = UpFile.ContentType;
92 com.Parameters["@PicDescription"].Value = this.TextBox1.Text;
93 com.Parameters["@PicSize"].Value = FileLength;
94
95 //执行数据库操作
96 com.Connection.Open();
97 com.ExecuteNonQuery();
98 com.Connection.Close();
99 //提示上传成功
100 this.lblMessage.Text = "上传成功!";
101 }
102 }
103 catch(Exception er)

104
{
105 this.lblMessage.Text = er.Message.ToString();
106 }
107 }
108
109 //读出图片并显示
110 private void butDisplay_Click(object sender, System.EventArgs e)

111
{
112 //获取输入的图片ID
113 int ImgID = int.Parse(this.txtPicID.Text);
114 //创建数据库连接字符串和SQL语句
115 string query = "SELECT * FROM Picture WHERE ID=@ImgID";
116 //创建SqlCommand对象并对参数进行初始化赋值
117 SqlCommand com = new SqlCommand(query,new SqlConnection(ConnStr));
118 com.Parameters.Add("@ImgID",SqlDbType.BigInt);
119 com.Parameters["@ImgID"].Value = ImgID;
120 //打开数据库连接
121 com.Connection.Open();
122 SqlDataReader dr = com.ExecuteReader();
123
124 if(dr.Read())

125
{
126 Response.ContentType = dr["PicType"].ToString();
127 Response.OutputStream.Write((byte[])dr["PicData"],0,int.Parse(dr["PicSize"].ToString())+50000);
128 }
129 else

130
{
131 this.lblMessage.Text = "没有这个图片的ID号";
132 Response.End();
133 }
134
135 //关闭SqlDataReader对象和数据库连接
136 dr.Close();
137 com.Connection.Close();
138
139 }
140
141
142 }
143}
144
posted on
2006-07-20 11:25
冷月孤峰
阅读(
325)
评论()
收藏
举报