• 图片二进制上传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();
            }

     
     
     
     
  • 相关阅读:
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    "=="和equals方法究竟有什么区别?
    Tomcat发生java.lang.OutOfMemoryError: PermGen space的解决方案
    HashMap原理
    springMVC
    SqlServer和Oracle修改表结构语句
    quartz定时任务时间表达式说明
    Linq to Entity 时间差作为筛选条件产生的问题
    密码学基础
    C#如何使用异步编程【BeginInvoke/EndInvoke】
  • 原文地址:https://www.cnblogs.com/tiancai/p/2247889.html
Copyright © 2020-2023  润新知