Welcome 微信登录

首页 / 网页编程 / ASP.NET / asp.net夜话之六:asp.net基本控件(二)

asp.net夜话之六:asp.net基本控件(二)2011-02-28 csdn博客 周金桥FileUpload控件

FileUpload控件是一个很重要的控件,它被Web服务器最终解释为形如“<input type=”file”…/>”这样的普通HTML控件。

它有如下常见属性:

属性名数据类型说明
FileBytesbyte[]上传的文件内容的字节数组表示形式
FileContentStream上传文件的数据流
FileNamestring上传文件在客户端的名字
HasFilebool指示是否上传了文件
PostedFileHttpPostedFile获取文件基础的HttpPostedFile对象

这个HttpPostedFile对象能帮我们做很多工作,它也有一些有用的常见属性:

属性名数据类型说明
ContentLengthint上传的文件内容的字节长度
ContentTypestring上传文件的MIME 内容类型
FileNamestring上传文件的在客户端的名字
InputStreamStream指向上传文件的Stream对象

FileUpload控件还有一个void SaveAs (string filename)的方法,这个方法用于将上传的文件保存到服务器上。一般来说,使用FileUpload控件上传文件一般有如下几个步骤:

(1)利用HasFile属性判断是否上传了文件。

(2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在则先创建。

(3)指定上传文件在服务器上的上传路径,利用SaveAs()保存上传的文件。这一步还可以做一些其它检查工作,比如检查上传的文件格式是否符合要求或文件内容大小是否符合要求。

(4)将相对路径或者URL地址保存起来,以便客户访问或者下载。

这里要着重强调的是:我们保存上传的时候保存文件用的是物理路径,但是要保存的、日后客户端能访问得到的却是相对路径或者URL地址。

下面是一个简单的例子,这个页面叫Upload.aspx,它的源视图代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upload.aspx.cs" Inherits="Upload" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>文件上传的例子</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fileUpload" runat="server" />
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上传" />
<asp:Literal ID="literal" runat="server"></asp:Literal></div>
</form>
</body>
</html>