图片二进制上传2

上传核心代码:

try

            {
             
                string ImgPath = FileUpload1.PostedFile.FileName;
                string ImgName = ImgPath.Substring(ImgPath.LastIndexOf("\\") + 1);
                string ImgExtend = ImgPath.Substring(ImgPath.LastIndexOf(".") + 1);
                if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif"))
                {
                    Label1.Text = "上传图片的格式不正确!";
                    return;
                }
                int FileLen = this.FileUpload1.PostedFile.ContentLength;
                Byte[] FileData = new Byte[FileLen];
                HttpPostedFile hp = FileUpload1.PostedFile;//创建访问客户端上传文件的对象
                Stream sr = hp.InputStream;//创建数据流对象
                sr.Read(FileData, 0, FileLen);//将图片数据放到FileData数组对象实例中,其中0代表数组指针的起始位置,FileLen表示要读取流的长度(指针的结素位置)
               
                SqlConnection con = new SqlConnection(connstr);
                con.Open();
                SqlCommand com = new SqlCommand("INSERT INTO pictures (PicData,PicName,PicType) VALUES (@imgdata,@ImaName,@ImgExtend)", con);
                com.Parameters.Add("@imgdata", SqlDbType.Image);
                com.Parameters.Add("@ImaName", SqlDbType.VarChar);
                com.Parameters.Add("@ImgExtend",SqlDbType.VarChar);
                com.Parameters["@imgdata"].Value = FileData;//二进制文本
                com.Parameters["@ImaName"].Value = ImgName; //图片名
                com.Parameters["@ImgExtend"].Value = ImgExtend;//类型
                com.ExecuteNonQuery();
                Label1.Text = "保存成功!";


               
            }
            catch (Exception error)
            {
                Label1.Text = "处理失败!原因为:" + error.ToString();
            }

图片显示核心代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            string imgid = Request.QueryString["imgid"];
            string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ToString();

            string sql = "SELECT PicData,PicType FROM pictures WHERE PicId ="

            + imgid;

            SqlConnection connection = new SqlConnection(connstr);

            SqlCommand command = new SqlCommand(sql, connection);

            connection.Open();

            SqlDataReader dr = command.ExecuteReader();

            if (dr.Read())
            {

                Response.ContentType = dr["PicType"].ToString();

                Response.BinaryWrite((byte[])dr["PicData"]);

            }
            connection.Close();
        }

 
 
 
 
posted @ 2011-11-14 09:47  甜菜波波  阅读(200)  评论(0编辑  收藏  举报