using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Data.SqlClient; namespace NetTest { /// <summary> /// UpImageToDataBase 的摘要说明。 /// </summary> public class UpImageToDataBase : System.Web.UI.Page { protected System.Web.UI.WebControls.Button btnSubmit; protected System.Web.UI.HtmlControls.HtmlInputFile myFile; private Int32 FileLength=0;//有可能图片的大小会超出INT的范围,所以声明为Int32,当然这和下面大小的判断有关系 private string con="server=localhost;uid=sa;pwd=;database=northwind"; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 }
#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click); this.Load += new System.EventHandler(this.Page_Load);
} #endregion
private void btnSubmit_Click(object sender, System.EventArgs e) { try { SqlConnection conn = new SqlConnection(con); string FileName=myFile.Value; HttpPostedFile UpFile=myFile.PostedFile;//获取对由客户端指定的上传文件的访问 FileLength=UpFile.ContentLength;//获取上传文件的字节大小 if(FileLength==0) { Response.Write("<script>alert('对不起,请选择要上传的图片')</script>"); return; } string exName=FileName.Substring(FileName.LastIndexOf(".")+1).ToUpper();//截取图片的后缀名 if(exName=="JPG"||exName=="BMP"||exName=="GIF")//判断图片的类型 { if(FileLength>204800)//判断图片是否大于200k(根据自己的需要判断大小) { Response.Write("<script>alert('对不起,图片大小不能大于200K')</script>"); return; } else { string ImageName=DateTime.Now.ToString("yyyyMMddhhmmssfff")+"."+exName;//图片名称设置为保存的时间 Byte[] FileByte = new Byte[FileLength]; //图象文件储存到数组 Stream ObjectStream = UpFile.InputStream;//建立数据流对像,获取一个 Stream 对象,该对象指向一个上载文件,以准备读取该文件的内容。 ObjectStream.Read(FileByte,0,FileLength); //读取图象文件数据 string StrSql="Insert Into UpImage Values(@ImageName,@Image)"; SqlCommand Cmd=new SqlCommand(StrSql,conn); Cmd.Parameters.Add("@Image",SqlDbType.Binary,FileLength).Value=FileByte; Cmd.Parameters.Add("@ImageName",SqlDbType.VarChar,100).Value=ImageName; conn.Open(); Cmd.ExecuteNonQuery(); conn.Close(); Response.Write("<script>alert('图片保存到数据库成功')</script>"); } } else { Response.Write("<script>alert('对不起,请选择正确的的图片')</script>"); return; } } catch(Exception ex) { Response.Write("<script>alert('"+ex.Message+"')</script>"); } } } } |