上传图片

来源:互联网 发布:淘宝名龙堂怎么样 编辑:程序博客网 时间:2024/04/29 13:51

一、程序功能:当上传图片大小超过8K或格式不符时禁止上传,上传通过之后,用DataGrid显示上传的图片

  二、建立数据库

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

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

  1、新建ASP.NET Web应用程序,命名为DataGrid3,保存路径为http://192.168.0.1/DataGrid3(注:我机子上的网站的IP192.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。然后点击确定。

  窗体界面如下;



  四、代码设计:

  1UpPicture.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
  2ViewPicture.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

原创粉丝点击