asp.net对图片的操作

上传图片时,对图片名进行验证(是否含有中文或空格)

<form   οnsubmit="return   c(this)">  
  <input   type=file   name=ff>  
  <input   type=submit>  
  </form>  
  <script>  
  function   c(o)  
  {  
  str   =   o.ff.value.substr(o.ff.value.lastIndexOf("//")+1)  
  if(/[   /u4e00-/u9fa5]/.test(str))  
  {  
  alert("不得中文,空格")  
  return   false  
  }  
  }  
  </script> 

使用asp.net实现对数据库里的图片进行存取

方法一(使用流操作):

存图片:

数据库里image表中只有两个字段:一个是imageID,另一个是image(存放图片数据)是image类型

 Stream stream = this.File1.PostedFile.InputStream;
        int len = this.File1.PostedFile.ContentLength;
        byte[] image = new byte[len];
        int n = stream.Read(image, 0, len);
        SqlConnection con = new SqlConnection("Data Source=.//SQLEXPRESS;Initial Catalog=test;Integrated Security=True");
        con.Open();

//---------------------------------------------------------------------------------------------------------------------------
        SqlCommand cmd = new SqlCommand("insert into image values(@image)", con);
        SqlParameter paramData = new SqlParameter("@image", SqlDbType.Image);
        paramData.Value = image;
        cmd.Parameters.Add(paramData);

//---------------------------------------------------------------------------------------------------------------------------

上面这段不能用sqlcommand cmd=new Sqlcommand("insert into image values('"+image+"')",con);

代替,会显示不出图片的,只显示system byte[]

        cmd.ExecuteNonQuery();
        con.Close();

取图片:

 string sql = "SELECT image FROM image ";
        SqlConnection connection = new SqlConnection("Data Source=.//SQLEXPRESS;Initial Catalog=test;Integrated Security=True");
        SqlCommand command = new SqlCommand(sql, connection);
        connection.Open();
        SqlDataReader dr = command.ExecuteReader();
        if (dr.Read())
        {
            Response.ContentType = "image/jpeg";
            Response.BinaryWrite((byte[])dr["image"]);//这种方法只能显示第一张图片(显示多张图片见下文方法)
        }
              connection.Close();

方法二:(用存取图片路径的方法)

其方法在服务器段建立一文件夹存图片(本文用UpFile)注意:UpFile文件夹要允许EveryOne用户有写入权限

数据库表有三个字段:id(自增),imagename,imageurl

存图片:

//上传图片并显示
        string name = this.FileUpload1.PostedFile.FileName;//图片路径
        if (name.Length != 0)
        {
            int start = name.LastIndexOf('//');
            int last = name.LastIndexOf('.');
            string imagename = name.Substring(start + 1, last - start - 1);//图片名 注意:文件名如果有空格或中文用上面的脚本进行验证
            this.FileUpload1.PostedFile.SaveAs(Server.MapPath("UpFile") + "//" + imagename + ".jpg");
            this.ImageButton1.ImageUrl = HttpContext.Current.Server.MapPath("UpFile") + "//" + imagename + ".jpg";
            SqlConnection con = new SqlConnection("Data Source=.//SQLEXPRESS;Initial Catalog=test;Integrated Security=True");
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into imagedetail values('" + imagename + "','" + url + "')", con);
            cmd.ExecuteNonQuery();
            con.Close();
        }

取图片:

直接取imageurl字段值赋予相应图片控件的imageurl属性,即可。

(读取多张图片的方法,待续。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值