ASP.NET,C#FileUpload实现上传限定类型和大小的文件到服务器

上传文件有两个主要的目的地,一个是服务器,另一个是数据库,ASP.NET内置了FileUpload这个上传控件,文本框显示用户选择的文件的全名.

其属性主要包括:

ContenLength:上传文件大小,单位:字节

FileName:文件名称

HasFile:是否选择了文件

例子:

测试环境.net 2.0(内有详细说明)

default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 >

<div>

<asp:FileUpload runat="server" /><br />

<br />

<asp:Button runat="server" OnClick="btnUpload_Click" Text="上传" /> </div>

</form>

</body>

</html>

default.aspx.cs

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnUpload_Click(object sender, EventArgs e)

{

Boolean fileOk = false;

string path = Server.MapPath("~/upload/");

//判断是否已经选取文件

if (FileUpload1.HasFile)

{

//取得文件的扩展名,并转换成小写

string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();

//限定只能上传jpg和gif图片

string[] allowExtension = { ".jpg", ".gif", ".txt", ".xls" };

//对上传的文件的类型进行一个个匹对

for (int i = 0; i < allowExtension.Length; i++)

{

if (fileExtension == allowExtension[i])

{

fileOk = true;

break;

}

}

//

if (fileOk)

{

resultlbl.Text = "要上传的文件类型不对!";

}

//对上传文件的大小进行检测,限定文件最大不超过1M

if (FileUpload1.PostedFile.ContentLength > 1024000)

{

fileOk = false;

}

//最后的结果

if (fileOk)

{

try

{

FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);

resultlbl.Text ="上传成功";

}

catch

{

resultlbl.Text = "上传失败";

}

}

else

{

resultlbl.Text = "文件类型或者文件大小超出1M或者文件类型不对";

}

}

}

}