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
现在你已经掌握了ASP.NET文件上传技术了,只要灵活应用,美化上传界面,做出好的ASP.NET上传程序了也不是什么难事了。
=========================================
应用ASP.NET向网络服务器上传文件
许多网站通过网页收集资料,如用户反馈及博客文章等。能够收集文本很不错。但是,我们经常需要收集更为稳健的因素。例如,许多招聘网站收集求职者用Word文件提交的简历。标准HTML支持文件上传功能,但如果应用ASP.NET上传的话,还可以获得一些附加功能。
输入标签
标准HTML输入标签支持文件类型属性,这样就可以向网络服务器上传文件。以下是此标签的格式:
<input type="file" name="fileUpload" />
将输入标签放在HTML表单元素中。列表A中的代码显示ASP.NET页面中用到的文件上传控制。
在ASP.NET页面中应用上传标签还要其它两个属性:id与runat。id属性按程序访问元素,而runat属性则指明处理元素的位置。runat属性由服务器设定,所以它由网络服务器来处理。另外,HTML中还包含对齐页面项目的其它元素,和一个提交表单的按钮。
文件上传元素为用户提供两个选择上传文件的选项:在输入文本框中输入文件路径,或者选择浏览(Browse)按钮从本地文件系统中进行选择。一旦用户指定了文件,再选择提交(Submit)按钮,网络服务器即接管。(需要使用代码来处理请求和上传的文件。)
用ASP.NET上传
应用ASP.NET上传文件有几种方式,让我们看一看几种情形。最基本的途径是应用上传输入控制特性与方法。以下是HTML输入控制的方法与特性:
* FileName:用户计算机上的完全合格的文件名称。它还包含上传文件的本地路径。
* ContentLength:上传文件的大小(字节)。
* ContentType:上传文件的MIME内容类型。
* InputStream:返回一个指向上传文件的流(Stream)对象,允许你阅读文件内容。
* SaveAs:方便保存上传文件的内容。
列表B中的C#语言实例对第一个代码样本进行扩充以处理上传文件。(列表C中是对应的VB.NET实例。)此页面退回以处理上传文件。ContentLength属性可避免上传空文件。FileName利用从文件本地路径中提取文件名的字符串方法在本地保存文件。SaveAs方法将文件保存在网络服务器文件夹中。BtnSubmit按钮用它的指向表单方法的ASP.NET OnServerClick事件来触发上传文件过程。
其代码应用HtmlInputFile和HttpPostedFile类。这些类(及其集合)的完整路径为:
* System.Web.UI.HtmlControls.HtmlInputFile
* System.Web.HttpPostedFile
在输入文件元素时建立HtmlputFile对象(在我们的例子中为fileUpload)。文件由表单(与HtmlInputFile对象)提交到服务器时则建立HttpPostedFile对象。只有在页面的回传事件中,HttpPostedFile对象才有效。