关闭

asp.net对图片的操作

464人阅读 评论(0) 收藏 举报

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

<form   onsubmit="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属性,即可。

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6930次
    • 积分:162
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类
    好的网址