首页 > 开发 > .Net > 正文

VB.NET上传图片并在DataGrid中显示

2020-02-03 15:25:27
字体:
来源:转载
供稿:网友
一、程序功能:当上传图片大小超过8k或格式不符时禁止上传,上传通过之后,用datagrid显示上传的图片

  二、建立数据库

  在mssql的northwind数据库中新建一个users表,表设计如下:

列名数据类型长度是否可以为空其它id int 4 否 主键,设标识为是,标识种子1,递增量1headimgvarchar50 否  
  三、窗体设计:

  1、新建asp.net web应用程序,命名为datagrid3,保存路径为http://192.168.0.1/datagrid3(注:我机子上的网站的ip是192.168.0.1的主目录是d:/web文件夹)然后点击确定。

  2、在解决方案资源管理器窗口中,将webform1.aspx重命名为uppicture.aspx,然后从工具箱中向窗体添加一个label控件、一个button按钮.然后从一个html工具箱中向窗体添加一个file field控件窗体界面如下:

  3、在解决方案资源管理器窗口中右击项目,选择添加-新项-web窗体,名称设为viewpicture.aspx。然后在打开的窗体中添加一个datagrid控件。

  4、右击datagrid控件,再点击下方的“属性生成器”,打开“datagrid属性窗口”。在“datagrid属性窗口”点击“列”,取消“在运行时自动创建列”前的对勾,向选定的列中添加一个绑定列,在页眉文本中输入“序号”,在数据字段中输入id。再向选定的列中添加一个绑定列,在页眉文本中输入“头像”,在数据字段中输入headimg。然后点击确定。

  窗体界面如下;



  四、代码设计:

  1、uppicture.aspx

imports system.data.sqlclient
 public class webform1
 inherits system.web.ui.page
 '窗体代码省略
 '上传图片
 private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click

 dim img as string
 '定义postedfile文件是储存用户上载的文件
 dim postedfile as httppostedfile = file1.postedfile
 '定义一个变量储存用户上载文件的大小
 dim intimgsize as int32
 '获取用户上传文件的大小,
 intimgsize = postedfile.contentlength

 '如果要上传的文件不为空
 if intimgsize <> 0 then

  '如果大于8k, 则禁止上传
  if intimgsize > 8000 then
   label1.text = "图片太大"
   exit sub
  end if

  '定义一个变量储存用户上传图片的文件类型
  dim strimgtype as string = postedfile.contenttype

  '只接受.gif格式的图片
  dim filesplit() as string = split(strimgtype, "/")
  strimgtype = filesplit(filesplit.length - 1)
  if strimgtype <> "gif" then
   label1.text = "图片格式不对"
   exit sub
  end if


  '储存要上传的文件的整个路径
  filesplit = split(postedfile.filename, "/")
  '取得上传文件的文件名
  dim filename as string = filesplit(filesplit.length - 1)
  '将上传的图片保存到服务器当前目录的headimg文件夹中
  postedfile.saveas(server.mappath("headimg") & "/" & filename)
  '定义一个变量储存服务器上当前上传图片的路径
  dim imgpath as string = "headimg/" & filename
  img = "<img src=" & imgpath & " border=0>"

  '将图片储存到数据库
  dim scon as new sqlconnection("server=localhost;database=northwind;uid=sa;pwd=123")
  scon.open()
  dim scom as new sqlcommand("insert into users values (@img)", scon)
  scom.parameters.add("@img", sqldbtype.varchar).value = img
  try
   scom.executenonquery()
   catch ex as exception
  end try
  scon.close()
  '转到查看图片窗口
  response.redirect("viewpicture.aspx")
 end if
end sub
end class
  2、viewpicture.aspx代码:

imports system.data.sqlclient
 public class viewpicture
  inherits system.web.ui.page
  ‘窗体代码省略
  private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
   dim scon as new sqlconnection("server=localhost;database=northwind;uid=sa;pwd=123")
   dim sda as new sqldataadapter("select * from users", scon)
   dim ds as new dataset
   try
    sda.fill(ds)
    catch ex as exception
   end try
   datagrid1.datasource = ds
   datagrid1.databind()
  end sub
 end class注册会员,创建你的web开发资料库,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表