关于ASP.NET多文件上传的简便解决方法(不需要动态生成HtmlInputFile)
本人刚开始学ASP.NET,以后要长期在这里混了,请大家多多指教!
搜索了一天的关于ASP.NET多文件上传的方法,很多时使用的都是动态生成HtmlInputFile,无非是在HTML上写一段JAVASCRIPT的脚本,动态的生成控件,对于我这个不太懂HTML的人来说,真是看到头大 ^_^!!!
这里我借鉴外国朋友写的源码,重新做了一个多文件上传的方法,原理很简单,就是定义一个COLLECTION,然后放入会话,当选择了一个文件后就将HtmlInputFile作为一个对象添加到COLLECTION,最后到真正上传的时候,再将遍历COLLECTION的元素,存到服务器上.
以下是简单代码:
新开一个工程,放上一个file Field控件,和两个按钮.
Public Class WelcomeAdmin
Inherits System.Web.UI.Page
Private FileCol As New Collection
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
If Not Page.IsPostBack Then
Response.Write("欢迎光临! ")
Page.Session("Files") = FileCol
End If
End Sub
'选择一个文件后,按确定
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FileCol = Page.Session("Files")
FileCol.Add(Me.File1.PostedFile)
Page.Session("Files") = FileCol
End Sub
'上传文件,我这里选择的是图片
Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
Dim PostFile As HttpPostedFile
Dim i As Integer
FileCol = Page.Session("Files")
For i = 1 To FileCol.Count
PostFile = FileCol(i)
Response.Write(PostFile.FileName)
PostFile.SaveAs("C:\Inetpub\wwwroot\JadePubSys\temp\" & i.ToString & ".jpg")
Next
End Sub
End Class
这里没加文件列单,如果加上的话,界面就更直观.