关于ASP.NET多文件上传的简便解决方法(不需要动态生成HtmlInputFile)

samchang samchang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人刚开始学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



这里没加文件列单,如果加上的话,界面就更直观.
...全文
评论 5
收藏 已收藏
分享
返回顶部
samchang
.NET社区 62,271 成员 668,968 内容