怎么对图片进行存储跟取出??例如做博客的上传相片和读取相片,哪位高手帮帮我?那图片是要实际保存在项目的根目录下吗?还有博客的排版是不是跟在dreamweaver里面做网站类似?

解决方案 »

  1.   

    给你看看小虎弟妹的博客
    http://www.cnblogs.com/jxyxhz/archive/2009/03/02/1401538.html
      

  2.   

    是用C#+ASP.NET+SQL Server 2005来做的,谢谢!
      

  3.   


    // 存图片到数据库
            protected void btnOK_Click(object sender, EventArgs e)
            {
                    if (!file1.HasFile)
                    {
                        Response.Write("<script>alert('请选择图片文件');</script>");
                        return;
                    }
                    String filter1 = ".jpg,.jpeg,.gif";
                    String ss = System.IO.Path.GetExtension(file1.PostedFile.FileName).ToLower();
                    if (filter1.IndexOf(ss) == -1)
                    {
                        Response.Write("<script>alert('您选择的不是图片文件');</script>");
                        return;
                    }
                    Int32 iSize = file1.PostedFile.ContentLength;
                    String iType = file1.PostedFile.ContentType;
                    System.IO.Stream iStream = file1.PostedFile.InputStream;
                    Byte[] iByte = new byte[iSize];
                    iStream.Read(iByte, 0, iSize);
                    iStream.Close();
                    String str = m1.picin(iType, iSize.ToString(), iByte);
                    if (str != "OK")
                        Response.Redirect("err.aspx?msg=" + HttpUtility.UrlEncode(str));
                }        }
            //存储过程 picin 添加新闻图片
            public String picin(String pType, String pSize, Byte[] pImg)
            {
                SqlCommand cmd = new SqlCommand("picin", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                //输入参数:
                SqlParameter pa2 = new SqlParameter("@pType", SqlDbType.VarChar);
                pa2.Value = pType;
                cmd.Parameters.Add(pa2);
                SqlParameter pa3 = new SqlParameter("@pSize", SqlDbType.VarChar);
                pa3.Value = pSize;
                cmd.Parameters.Add(pa3);
                SqlParameter pa5 = new SqlParameter("@pImg", SqlDbType.Image);
                pa5.Value = pImg;
                cmd.Parameters.Add(pa5);            try
                {
                    this.sqlOpen();
                    cmd.ExecuteNonQuery();
                    return "OK";
                }
                catch (SqlException err)
                {
                    return err.ToString();
                }
                finally
                {
                    this.sqlClose();
                }
            }
    -- 存储过程
    CREATE Proc picin
    (
    @pType varchar(50),
    @pSize varchar(50),
    @pImg image
    )
    AS
    INSERT INTO pic (pType, pSize, pImg)
    VALUES (@pType, @pSize, @pImg)
    GO
    读取图片:
    <img src='img.aspx?pID=2' />img.aspx代码
    新建一个aspx,在load事件里:
           protected void Page_Load(object sender, EventArgs e)
            {
                int pID = Convert.ToInt32(Request.QueryString["pID"]);
                if (pID != 0)
                {
                    cmd = " SELECT pID, pType, pImg FROM pic WHERE pID = " + pID;
                    try
                    {
                        m2.sqlOpen();
                        m2.read1(cmd);
                        if (m2.r1.Read())
                        {
                            Response.Clear();
                            Response.BinaryWrite((byte[])m2.r1["pImg"]);
                            Response.End(); 
                        }
                    }
                    finally
                    {
                        m2.sqlClose();
                    }
                }
            }
      

  4.   

    正解,显示图片的时候是读取图片的存储路径(一般存相对路劲)给IMG控件。
      

  5.   

    一般是把图片存在硬盘上的,db上保存路径
    如果项目需要可以直接以二进制流的形式保存到db中
      

  6.   

    存:
    FileStream fs = new FileStream(MusicClass.Picpath, FileMode.Open, FileAccess.Read);
                    int imgLen = (int)fs.Length;
                    Byte[] ImgBinaryData = new Byte[imgLen];
                    fs.Read(ImgBinaryData, 0, imgLen);                Com.Parameters.Add("@专辑图片", SqlDbType.Image);
                    Com.Parameters["@专辑图片"].Value = ImgBinaryData;读:
     Byte[] byteDB = new Byte[0];
                    byteDB = (Byte[])(dgvMusic["专辑图片", dgvMusic.CurrentCell.RowIndex].Value);
                    MemoryStream stmImage = new System.IO.MemoryStream(byteDB);
                    this.pbImage.Image = Image.FromStream(stmImage);