难度比较高的文件夹上传问题,请高手帮忙!

FantasyTC 2004-05-05 08:28:15
HMTL控件的Input type=file 是上传单一文件的.如果我想要做一个选中一个文件夹,它就自动上传文件夹里面所有文件的方法,还有是自己写控件,如何能读取客户端的文件呢?
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blueion 2004-05-13
  • 打赏
  • 举报
回复
利用ASP.NET向服务器上传文件

文件上传技术是一个很实用的技术,有着很广泛的应用,在ASP.NET自身的前一个版本ASP里实现这个功能,就必须使用第三方的组件或者自己开发组件了,现在,用ASP.NET实现起来就简单得多了,我们不需要使用任何组件就可以实现上传的功能了。
为了方便讲解,我们可以把文件上传分成两种类型:单一文件上传和多文件上传。

单一文件上传
我们先来介绍单一文件上传的方法,单一文件上传就比较简单了,
下面是实现单一文件上传的完整代码:
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Web.HttpPostedFile" %>
<%@ Import
Namespace="System.Web.UI.HtmlControls.HtmlInputFile" %>
<script language="VB" runat="server">
Sub UpLoad(Src As Object, E As EventArgs)
If UploadFile.PostedFile.ContentLength=0 then
ShowUpLoadFile.innerText="上传失败或文件不存在!"
Else
'获取文件名
dim Temp() as
String=Split(UploadFile.PostedFile.FileName,"\")
dim FileName as String=Temp(Temp.Length-1)
'保存文件
UploadFile.PostedFile.SaveAs(Server.MapPath(".") & "\Files\"
& FileName)
'显示上传结果
ShowUpLoadFile.InnerHtml="文件上传成功!<br>上传文件名:" & FileName
End If
End Sub
</script>
<html>
<body>
<form runat="server" enctype="multipart/form-data">
<input type="file" id="UploadFile" runat="server"
size="50"><br>
<asp:button runat="server" Text="立即上传" onClick="Upload"
/>
</form>
<hr><br>
<span id="ShowUpLoadFile" runat="server"></span>
</body>
</html>

把上面的代码保存成.aspx文件,然后在该文件所在目录下创建一个存放文件的新目录Files,运行,先感受一下效果,然后再继续看下面的讲解

使用ASP.NET上传文件,需要用到.NET框架的两个类:HttpPostedFile和HtmlInputFile,这两个类所在的命名空间分别是System.Web.HttpPostedFile和System.Web.UI.HtmlControls.HtmlInputFile,所以我们要在文件开头先导入这两个命名空间,
其中的PostedFile表示上传到服务器的文件,它包含几个常用的属性:
ContentLength:文件大小;
FileName :上传文件的详细路径及文件名;
ContentType :上传文件的文件类型。
字符分割函数Split是用来取得文件名的,因为通过PostedFile.FileName获得的是详细的路径及文件名。

多文件上传

所谓的多文件上传就是同时上传多个文件,这个跟单一文件上传大多是相同的,不同的是多文件上传是把所有文件作为一个文件集合一起上传到服务器的,我们需要的是把这个文件集合分解成一个个单一的文件,剩下的处理方法就跟单一文件上传一样了。
首先你要知道要最多同时上传多少个文件,然后你就在form之间放多少个如下的HtmlInput控件:
<input type="file" runat="server" size="50">
注意:这里的HtmlInput控件控件是不需要设置ID的
那怎么在上传到服务器的文件集合中取出一个个的文件呢?看下面的代码:
dim i as integer
For i=0 to Request.Files.Count-1
‘使用Request.Files()来逐个获取上传的文件
dim myFile as HttpPostedFile=Request.Files(i)
'这里的myFile就相当于上例中的PostedFile,可以用myFile.FileName获得文件名,etc
'这里的处理代码就跟单一文件上传的一样了
Next
FantasyTC 2004-05-05
  • 打赏
  • 举报
回复
真的没有人有办法吗?
真相重于对错 2004-05-05
  • 打赏
  • 举报
回复
纯粹的asp.net无法实现。因为asp.net是服务器端的程序,他的客户端只是使用了javascript如果要上传文件夹,你必须使用com组件或者cs方式
【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧