一、程序功能:当上传图片大小超过8K或格式不符时禁止上传,上传通过之后,用DataGrid显示上传的图片
二、建立数据库
在MSSQL的NorthWind数据库中新建一个users表,表设计如下:
三、窗体设计:
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
2、ViewPicture.aspx代码:
二、建立数据库
在MSSQL的NorthWind数据库中新建一个users表,表设计如下:
列名 | 数据类型 | 长度 | 是否可以为空 | 其它 |
id | int | 4 | 否 | 主键,设标识为是,标识种子1,递增量1 |
headimg | varchar | 50 | 否 |
三、窗体设计:
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 |