实现ASP.NET中FileUpload多文件上传

实现ASP.NET中FileUpload多文件上传

这里附加一下上传单个文件的CS代码:

protected void upload_Click(object sender, EventArgs e)
    {

        if (upfile.HasFile)
        {
            string fname = upfile.PostedFile.FileName;
            int fi = fname.LastIndexOf("//") + 1;
            string filename = fname.Substring(fi);
            upfile.PostedFile.SaveAs(Server.MapPath("upload//" + filename));
            Response.Write("<script>alert('报名表上传成功!');</script>");
        }
        else
        {
            Response.Write("<script>alert('请选择您要上传的报名表!');</script>");
        }

    }

下面是上传多个文件的全部代码,第一次实现这样的功能,难免有考虑不周全的地方,还望高手见到后指教!

【显示页面代码】:

在<head></head>标签中插入如下脚本代码:

<script type="text/javascript">
         function addfile()
         {
          var uploadfiles=document.getElementById("uploadfiles"),str = '<INPUT type="file" size="50" NAME="File">';
          uploadfiles.innerHTML+=str;
         }
</script>

在页面主体部分插入:

<div>
     <p id="uploadfiles"><input type="file" size="50" name="file"></p>
     <input οnclick="addfile()" type="button" value="增加">
     <asp:button id="uploadbutton" Text="开始上传" Runat="server"></asp:button>
</div>

【C#代码】:

添加using指令:using System.Text.RegularExpressions;

在protected void Page_Load(object sender, EventArgs e){}中插入如下代码:

HttpFileCollection files = HttpContext.Current.Request.Files;
        //状态信息
        System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
        for (int ifile = 0; ifile < files.Count; ifile++)
        {
            HttpPostedFile postedfile = files[ifile];
            string filename, fileExt;
            filename = System.IO.Path.GetFileName(postedfile.FileName);    //获取文件名
            fileExt = System.IO.Path.GetExtension(filename);    //获取文件后缀

            int MaxAllowUploadFileSize = Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["MaxAllowUploadFileSize"]);     //定义允许上传文件大小
            if (MaxAllowUploadFileSize == 0) { MaxAllowUploadFileSize = 26500; }
            string allowexts = System.Configuration.ConfigurationSettings.AppSettings["AllowUploadFileType"];    //定义允许上传文件类型
            if (allowexts == "") { allowexts = "doc|docx|rar|xls|xlsx|txt"; }
            Regex allowext = new Regex(allowexts);

            if (postedfile.ContentLength < MaxAllowUploadFileSize && allowext.IsMatch(fileExt)) //检查文件大小及扩展名
            {
                postedfile.SaveAs(Server.MapPath("upload//" + filename + fileExt));    //upload为与本页面同一目录,可自行修改
            }
            else
            {
                Response.Write("<script>alert('不允许上传类型" + fileExt + "或文件过大')</script>");
            }
        }

【Web.config中代码】:

<appSettings>
    <add key="MaxAllowUploadFileSize" value="256000" />
    <add key="AllowUploadFileType" value="doc|docx|rar|xls|xlsx|txt" />
</appSettings>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值