二进制读取保存图片

 protected void Button1_Click(object sender, EventArgs e)
    {
        Stream ms;
        byte[] picbyte;

        ms = File.OpenRead(@"D://test//20034814613.jpg");
        picbyte=new byte[ms.Length];
        ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
        decimal size = Convert.ToDecimal(this.TextBox1.Text);
        string sql = "insert pic img values(@img,@size)";
        SqlConnection sqlConn = new SqlConnection(@"server=TECH-02/SQLEXPRESS;Integrated Security = true;database = Talent");
        SqlCommand sqlCmd = new SqlCommand(sql, sqlConn);

        sqlCmd.Parameters.Add("@img", SqlDbType.Image);
        sqlCmd.Parameters["@img"].Value = picbyte;
        sqlCmd.Parameters.Add("@size", SqlDbType.Decimal);
        sqlCmd.Parameters["@size"].Value = size;
        sqlConn.Open();
        int n=sqlCmd.ExecuteNonQuery();
        if (n > 0) {
            Response.Write("<script>alert('ok');</script>");
        }
        sqlConn.Close();
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        string sql = "select picContent from pic";
        SqlConnection sqlConn = new SqlConnection(@"server=TECH-02/SQLEXPRESS;Integrated Security = true;database = Talent");
        SqlCommand sqlCmd = new SqlCommand(sql, sqlConn);
        sqlConn.Open();
      
        SqlDataReader sdr = sqlCmd.ExecuteReader();
        while (sdr.Read())
        {
            byte[] bytes = ((byte[])sdr["picContent"]);//1通过路径输出
            bytes2picFile(bytes);
            //Response.ContentType = "application/octet-stream";//2直接二进制流输出
            //Response.BinaryWrite((Byte[])sdr["picContent"]);
        }     

    }
     public void bytes2picFile(byte[] data)
    {
      string url = "images/" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg";
      Directory.CreateDirectory(url);//DirectoryExists()
      FileStream fs =new FileStream(Server.MapPath(url),System.IO.FileMode.Create);
      fs.Write(data, 0, data.Length);
      fs.Close();
      this.Image1.ImageUrl = url;
    }

 

 

 

 <form id="form1" runat="server">
    <div>
        &nbsp;&nbsp;
        <table>
            <tr>
                <td style="width: 100px">
                    <asp:FileUpload ID="FileUpload1" runat="server" /></td>
                <td style="width: 100px">
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
                <td style="width: 100px">
                    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="二进制写入数据库" /></td>
            </tr>
            <tr>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px">
                    <asp:Image ID="Image1" runat="server" Width="226px" /></td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px">
                    <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="读取二进制数据" /></td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
        </table>
        &nbsp;
   
    </div>
    </form>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值