当前位置:编程学习 > C#/ASP.NET >>

asp.net c# 在.NET里面怎样上传图片到数据库,又怎样从数据库中读出来显示在网页上?

asp.net  c# 在.NET里面怎样上传图片到数据库,又怎样从数据库中读出来显示在网页上?

.net2005里面建立了一个WebForm,怎么在上面上传图片,并且从数据库中读出来显示? --------------------编程问答-------------------- 怎么弄啊? 哪位大虾帮帮忙~~ --------------------编程问答-------------------- 我这个是WinForm 保存和读取图片的代码 ,和WebForm 原理是一样的,你参考下:

private void 易做图Button1_Click(object sender, EventArgs e)
        {
            string pathName;
            OpenFileDialog opf = new OpenFileDialog();
            if (opf.ShowDialog() == DialogResult.OK)
            {
                pathName = opf.FileName;

                FileStream fs = new FileStream(pathName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[] buffByte = new byte[fs.Length];
                fs.Read(buffByte, 0, (int)fs.Length);
                fs.Close();

                SqlConnection conn = new SqlConnection(@"server=192.168.0.15\ERP5;database=bizcent_books;uid=sa;pwd=11");

                SqlCommand command = new SqlCommand(@"UPDATE [000].tbGoods set GoodsPic=@img WHERE GoodsCode='0000000002'", conn);
                command.Parameters.Add("@img", System.Data.SqlDbType.Image);
                command.Parameters[0].Value = buffByte;

                try
                {
                    conn.Open();
                    command.ExecuteNonQuery();
                    MessageBox.Show("Ok");
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message); }
                finally
                {
                    conn.Close();
                }
            }
        }

        private void 易做图Button2_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(@"server=192.168.0.15\ERP5;database=bizcent_books;uid=sa;pwd=11");

            DataTable dt = new DataTable();
            SqlDataAdapter adp = new SqlDataAdapter("select Pic from tbImg where ID='7cc08e'", conn);
            adp.Fill(dt);
            byte[] buffByte = (byte[])dt.Rows[0][0];

            MemoryStream ms = new MemoryStream(buffByte);
            Image image = Image.FromStream(ms, true);

            this.pictureEdit1.Image = image;
        } --------------------编程问答-------------------- 数据库字段为image类型,将图片转化为byte[],保存到数据库,参考:

        public byte[] GetPhoto(string filePath)
        {
            try
            {
                FileStream stream = new FileStream(
                    filePath, FileMode.Open, FileAccess.Read);
                BinaryReader reader = new BinaryReader(stream);
                byte[] photo = reader.ReadBytes((int)stream.Length);
                reader.Close();
                stream.Close();
                if (photo.Length > (1024 * 1024))
                {
                    MessageBox.Show(SettingFormResources.PictureTooBig);
                    return null;
                }

                return photo;
            }
            catch
            {
                return null;
            }
        }




                Response.Clear();
                Response.ContentType = "image/gif";
                Response.Write ......//输出
                Response.End();
--------------------编程问答-------------------- 把图片保存到数据库。太失败了。数据库不是用来放图片的。 --------------------编程问答-------------------- 你在数据库里面,存放图片的形式是什么样的呢?》 --------------------编程问答--------------------
引用 4 楼 l8487 的回复:
把图片保存到数据库。太失败了。数据库不是用来放图片的。


 存放路径是怎么搞的呢?? --------------------编程问答--------------------
引用 4 楼 l8487 的回复:
把图片保存到数据库。太失败了。数据库不是用来放图片的。

也不一定,看什么场合。世事无绝对,很多应用就需要把图片保存在数据库中。
一般来讲,如果所保存的图片体积小,数量大,强烈建议直接保存在数据库中。
图片存数据库就是:数据库字段为image类型,将图片转化为byte[],保存到数据库,

--------------------编程问答--------------------
引用 7 楼 jysh321 的回复:
 
也不一定,看什么场合。世事无绝对,很多应用就需要把图片保存在数据库中。 
一般来讲,如果所保存的图片体积小,数量大,强烈建议直接保存在数据库中。 
图片存数据库就是:数据库字段为image类型,将图片转化为byte[],保存到数据库, 


有没有实现的代码啊? --------------------编程问答-------------------- http://topic.csdn.net/u/20080508/20/2c480ff0-783d-44db-b0a5-78f6ca014aff.html?seed=1800136528
已经给你回复了 --------------------编程问答-------------------- 建议保存路径 --------------------编程问答-------------------- 可我为什么显示 System.Byte[]了啊? --------------------编程问答-------------------- 那位说保存路径的仁兄 , 请问存为路径后怎样读到DataGridView里面呢? --------------------编程问答--------------------
引用 2 楼 lengfo 的回复:
我这个是WinForm 保存和读取图片的代码 ,和WebForm 原理是一样的,你参考下: 

private void 易做图Button1_Click(object sender, EventArgs e) 
        { 
            string pathName; 
            OpenFileDialog opf = new OpenFileDialog(); 
            if (opf.ShowDialog() == DialogResult.OK) 
            { 
                pathName = opf.FileName; 

                FileStream fs = new FileS…
ok --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 最关键的就是存储路径啊 然后根据路径显示图片 网上的例子挺多 看一下就可以了啊 --------------------编程问答-------------------- protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        { 
           // Directory.CreateDirectory(Server.MapPath("Pirctures/"));
            string path=Server.MapPath("Pirctures/");
            string name=FileUpload1.FileName;
            string fullpath=path+name;
            FileUpload1.PostedFile.SaveAs(fullpath);
            Image1.ImageUrl = "Pictures/"+name;
        }
    }


为什么图片不能正确显示 --------------------编程问答--------------------
引用 16 楼  的回复:
protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        { 
           // Directory.CreateDirectory(Server.MapPath("Pirctures/"));
            stri……

有个问题不明白,像您这样的话,假设有两个用户访问,他们先后上传图片,此时name应该是第二个用户的图片吧,那么第一个用户刷新页面会不会显示的是第二个用户上传的图片? --------------------编程问答-------------------- 在FileUpload1 里加一句 onchange="document.getElementById('img').src=this.value" 当选择一张图片的时候,img就会显示图片,上传之后,改变数据库里的名字就行了,为了名字不重复,所以上传图片的时候要给上传的图片改个不会重复的名字
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,