VB.NET上传图片并在DataGrid中显示
2007-04-18 11:12
357 查看
、程序功能:当上传图片大小超过8K或格式不符时禁止上传,上传通过之后,用DataGrid显示上传的图片
二、建立数据库
在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
二、建立数据库
在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
相关文章推荐
- ASP.NET上传图片并在DataGrid中显示
- 详解vb.net实现图片以二进制形式上传和读取到数据库
- 图片上传到数据库与显示(转载,C#→VB)
- vb.net 、c# 、GDI+分解显示GIF图片
- 用asp.net 多文件上传 (并且图片即使显示)并隐藏上一个文件选择器
- ASP.NET上传图片立即显示(不上传到服务器)
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- asp.net mvc 2.0 简单的上传图片到数据库和显示图片
- asp.net+FCKeditor上传图片显示叉叉图片无法显示的问题的解决方法
- ASP.NET MVC实现图片上传、图片预览显示
- ASP.NET MVC图片管理(上传,预览与显示)
- c# asp.net 使用kindeditor在服务器上不能显示上传图片的页面等解决办法
- 详解vb.net实现图片以二进制形式上传和读取到数据库
- asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图
- ASP.NET上传图片至数据库并显示图片
- Asp.net实现同页面内多图片自动上传并带预览显示
- asp.net 图片上传至服务器并显示
- VB.NET显示Internet上的图片
- 利用ASP.NET来访问Excel文档+DATAGRID显示数据[注意:Excel中有图片]
- ASP.NET的图片上传和显示