zoukankan      html  css  js  c++  java
  • 026. asp.net中将图片以二进制方式保存到数据库并以HTTP流方式输出

    保存到数据库中

     protected void imgbtnCreate_Click(object sender, ImageClickEventArgs e)
        {
            
            string PerHomeName=tbPerHomeName.Text;//获取空间名
           
            string PerHomeSign=txtPerSign.Text; //获取个性签名
            
            string imgPath = uploadFile.PostedFile.FileName;//获取文件件名
            
            string lastName = imgPath.Substring(imgPath.LastIndexOf(".") + 1);//获取文件上传后缀名
            SqlConnection conn = new SqlConnection( "server=.;database=TYW;uid=sa;pwd=123.456;");
            conn.Open();
            if (uploadFile.PostedFile.FileName != "" && lastName.ToLower() == "jpg" || lastName.ToLower() == "gif")
            {
                if (uploadFile.PostedFile.ContentLength > 40960)
                {
                    Response.Write("<script language='javaScript'>alert('你上传的图片超过了40KB!')</script>");
                    return;
                }
                int imgLength = uploadFile.PostedFile.ContentLength;//获取上传文件大小
                Byte[] imageData = new Byte[imgLength]; //定义Byte数组
                HttpPostedFile hp = uploadFile.PostedFile;//创建访问客户端上传文件的对象
                Stream imagestream = hp.InputStream;//创建数据流对象
                //将图片数据放到image数据对象实例中,其中0代表数组指针的起始位置,imagelength表示要读取流的长度
                imagestream.Read(imageData, 0, imgLength);
    string sqlstr = "insert into card(cardNo,cardBound,email)values('" + 1234 + "','" + 9966770 + "',@ImageData)";
                SqlCommand comm = new SqlCommand(sqlstr, conn);
                comm.Parameters.Add("@ImageData", SqlDbType.Image);
                comm.Parameters["@ImageData"].Value = imageData;
                comm.ExecuteNonQuery();
                conn.Close();
                Response.Write("<Script>alert('个人空间创建成功!')</Script>");
            }
            else
            {
                Response.Write("<script>alert('上传头像不能为空,且格式必须为gif或jpg!');location='javascript:history.go(-1)'</script>");
            }
        }

    以HTTP流形式输出到界面:

    protected void Page_Load(object sender, EventArgs e)
        {
            string requestID = Request.QueryString["id"];//获取Default.aspx页面传过来的id值
            SqlConnection conn = new SqlConnection("server=.;database=TYW;uid=sa;pwd=123.456;");
            string strsql = "select * from [card] where cardBound=" + 9966770;
            SqlCommand comm = new SqlCommand(strsql, conn);//创建命令对象 
            conn.Open();
            SqlDataReader dr = comm.ExecuteReader();//创建数据阅读器
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    byte[] imageData = (byte[])dr["email"];
                    Response.BinaryWrite(imageData);//输出二进制流形式的图片
                }
            }
            dr.Close();
            conn.Close();
        }
  • 相关阅读:
    powershell初探(七)
    powershell初探(九)
    打造一个有感觉的Vim(一)
    屏幕录像软件Wink
    注释也精彩
    解决XP专业版局域网访问故障十八招
    可以抓文字的抓图软件
    轻松玩转XP系统(一)
    Excel实战技巧之[活用条件格式]
    局域网传输工具飞鸽传书IPMessager
  • 原文地址:https://www.cnblogs.com/wxylog/p/6149382.html
Copyright © 2011-2022 走看看