zoukankan      html  css  js  c++  java
  • 实现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>
         
    <id="uploadfiles"><input type="file" size="50" name="file"></p>
         
    <input onclick="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>

  • 相关阅读:
    十层框架
    大规模web服务开发技术
    ASP.NET三层架构基础详细操作图文教程
    ASP.NET MVC4中的异步控制器
    集成多个子系统的单点登录(网站入口方式)附源码
    我的C#全能Excel操作(无需Office,不使用XML)
    代码重构——程序员应有的基因
    通过监听Windows消息对复合控件进行整体控制
    Android游戏框架
    Ext.NET
  • 原文地址:https://www.cnblogs.com/ret00100/p/1585859.html
Copyright © 2011-2022 走看看