构想是这样的:一.将图片以二进制数据方式,通过WEB传到数据库.
二.通过WEB读取数据库图片.
三.支持一对多,浏览图片.如:绑定图片说明,同样的说明有好几张图片.要能一一浏览出来
四.特效要求:要求输入图片ID后,读取该ID所有图片,以小样显示,点小样显示大图,大图能缩放.

解决方案 »

  1.   

    有点晕
    1、不要把图片以流的形式存放在数据库,最好存url
    2、支持1:n用主表和从表来操作,更规范一点。
    3、在图片显示时,上传最好以大图和小图的方式保存,内容页面读大图,其它页面读小图
      

  2.   

    C#处理图片很简单的,使用bitmap对象保存的时候保存为二进制数据,取出来展示的时候也是先取出作为二进制数据,然后再创建bitmap对象。关于缩放,imag控件上只要把属性设置了就可以了。
       
    还是跟楼上的一样,建议保存地址。之前做的一个系统,存图片那个表2000条记录左右,表也不是很长,就7,8个字段。select * 使用了40多秒。(注 :数据库是sqlserver  2000)
      

  3.   

    通过多文件上传图片到数据库,也可保存路径到数据库
    通过控件如gridview绑定show.aspx,在show.aspx里读取图片或遍历循环,读出图片
    using(SqlConnection conn=new SqlConnection())
    {
    conn.ConnectionString="";
    string strSql="select * from img where Id='"+Id+"'"; 
    SqlCommand cmd=new SqlCommand(strSql,conn) ;
    conn.Open();
    SqlDataReader reader=cmd.ExecuteReader();
    if(reader.Read())
    {
    Response.ContentType = "application/octet-stream";
    Response.BinaryWrite((Byte[])reader["img"]);
    }
    Response.End();
    conn.Close();
    }
    放大缩小通过JS就可实现
     function zoomimg(img){ 
    var zoom = parseInt(img.style.zoom,10); 
    if (isNaN(zoom)){  
    zoom = 100; 

    zoom += event.wheelDelta / 12; 
    if (zoom>10) img.style.zoom = zoom + "%"; 
    return false; 

    </script> 
    <img src="1.jpg" onmousewheel="return zoomimg(this);"> 
      

  4.   

    问题是:点小样图,然后显示大图,这大图要是另页显示的话,用<a href  ="StreamImg.aspx?ImgID=22" border="1" onmousewheel="return bigimg(this)">显示,会有报错.
    验证 (XHTML 1.0 Transitional): 属性“onmousewheel”不是元素“img”的有效属性。
    所以不能缩放.
      

  5.   

    问题是:点小样图,然后显示大图,这大图要是另页显示的话,用 <a href  ="StreamImg.aspx?ImgID=22" border="1" onmousewheel="return bigimg(this)">显示,会有报错. 
    验证 (XHTML 1.0 Transitional): 属性“onmousewheel”不是元素“img”的有效属性。 
    所以不能缩放.