许多网站通过网页收集资料,如用户反馈及博客文章等。能够收集文本很不错。但是,我们经常需要收集更为稳健的因素。例如,许多招聘网站收集求职者用Word文件提交的简历。标准HTML支持文件上传功能,但如果应用ASP.NET上传的话,还可以获得一些附加功能。
输入标签
标准HTML输入标签支持文件类型属性,这样就可以向网络服务器上传文件。以下是此标签的格式:
<input type="file" name="fileUpload" />
将输入标签放在HTML表单元素中。列表A中的代码显示ASP.NET页面中用到的文件上传控制。
列表A
<%@ Page %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html><head><title> TechRepublic File Upload Example </title>
</head><body>
<h2 align="center">TechRepublic File Upload Example</h2>
<div id="divCenter" align="center">
<form id="frmFileUploadDemo" method="post" runat="server">
<input type="file" name="fileUpload" id="fileUpload" runat="server" size="50" />
<br /><br />
<input type="submit" id="butSubmit" value="Submit" runat="server">
</form></div></body></html>
在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事件来触发上传文件过程。
发表回复