首页 > 代码库 > ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器<from Copying>

ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器<from Copying>

 

2009-02-15 11:52:54|  分类: 默认分类 |  标签: |举报 |字号 订阅

ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器
2009-01-07 23:29

上传文件有两个主要的目的地,一个是服务器,另一个是数据库,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 runat="server">
<div>
<asp:FileUpload runat="server" /><br />
<br />
<asp:Button runat="server" 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" };
            //对上传的文件的类型进行一个个匹对
            for (int i = 0; i < allowExtension.Length; i++)
            {
                if (fileExtension == allowExtension[i])
                {
                    fileOk = true;
                    break;
                }
            }
            //对上传文件的大小进行检测,限定文件最大不超过1M
            if (FileUpload1.PostedFile.ContentLength > 1024000)
            {
                fileOk = false;
            }
            //最后的结果
            if (fileOk)
            {
                try
                {
                    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
                    Response.Write("<script type=‘text/javascript‘>window.alert(‘上传成功‘)</script>");
                }
                catch
                {
                    Response.Write("<script type=‘text/javascript‘>window.alert(‘上传失败‘)</script>");
                }
            }
            else
            {
                Response.Write("<script type=‘text/javascript‘>window.alert(‘文件类型或者文件大小超出1M‘)</script>");
            }