c# web fileUpload实现多文件上传

1) web.config



    
    

2)前台代码:

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



    
    
    
    


    


文件1:



添加更多附件

3)后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;
namespace FileUploadDemo
{
    public partial class _Default : System.Web.UI.Page
    {
        private StringBuilder sb = new StringBuilder();//用来获取上传时出错信息 
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnUp_Click(object sender, EventArgs e)
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;//获取上传控件的个数
            if (haveFile(files))//存在上传文件
            {
                if (FindError(files))//上传文件不存在错误
                {
                    bool flag = false;
                    string dirPath = Server.MapPath(@"~/dir");//上传文件夹路径
                    if (!Directory.Exists(dirPath))//不存在上传文件夹
                    {
                        Directory.CreateDirectory(dirPath);//创建文件夹
                    }
                    for (int i = 0; i < files.Count; i++)//遍历上传控件
                    {
                        string path = files[i].FileName;//上传文件路径
                        string fileName = Path.GetFileName(path);//获取文件名
                        string savePath = dirPath + @"/" + fileName;//上传文件路径
                        if (path != "")
                        {
                            try
                            {
                                files[i].SaveAs(savePath);
                                flag = false;
                            }
                            catch (Exception ex)
                            {
                                flag = true;
                            }
                        }
                    }
                    if (flag)//上传文件时出错
                    {
                        Page.ClientScript.RegisterStartupScript(GetType(), "uploadError", "alert('上传文件出错!')", true);
                    }
                    else
                    {
                        Page.ClientScript.RegisterStartupScript(GetType(), "uploadSuccess", "alert('上传文件成功!')", true);
                    }
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(GetType(), "fileError", string.Format("fileError('{0}')", sb.ToString()), true);
                }
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(GetType(), "haveNoFile", "alert('请选择上传文件!')", true);
            }
        }
        /// 
        /// 判断是否有上传文件
        /// 
        /// 
        /// 
        private bool haveFile(HttpFileCollection files)
        {
            bool flag = false;
            for (int i = 0; i < files.Count; i++)
            {
                string path = files[i].FileName;//上传文件路径
                if (path != "") { flag = true; break; }//存在上传文件
            }
            return flag;
        }
        /// 
        ///  判断上传文件是否有错
        /// 上传文件有错return false
        /// 上传文件没有错return true
        /// 
        /// 上传控件
        /// 
        private bool FindError(HttpFileCollection files)
        {
            bool flag = false;
            for (int i = 0; i < files.Count; i++)//遍历上传控件
            {
                string path = files[i].FileName;//上传文件路径
                if (path != "")//上传控件中存在上传文件
                {
                    string fileName = Path.GetFileName(path);//获取上传文件名
                    string fex = Path.GetExtension(path);//获取上传文件的后缀名
                    if (files[i].ContentLength / 4096 > 1024)//上传文件大于4M
                    {
                        sb.Append(fileName + "的大小超过4M!");
                        break;
                    }
                    if (fex == ".exe" || fex == ".EXE") //上传文件是exe文件
                    {
                        sb.Append(fileName + "的格式不正确!");
                        break;
                    }
                }
            }
            if (sb.ToString() == "") { flag = true; }//上传文件没有错误
            return flag;
        }
    }
}


你可能感兴趣的:(c#,web)