• ASP.NET 使用HTML file控件进行文件上传


    第一种:

    1  <form id="form1"enctype="multipart/form-data" action="Default.aspx" method="post" >
    2  <input type="button" value="添加附件" onclick="addAttachment()" />  
    3     <div id="divAttachment">  
    4     </div>  
    5    <input type="submit"  value="提交"/>
    6 </form>

    JS:

     1       <script language="javascript">
     2     function addAttachment() {  
     3             var div = document.createElement("div");  
     4             var input = document.createElement("input");  
     5             input.setAttribute("type", "file");  
     6             input.setAttribute("name", "file");  
     7             input.setAttribute("runat", "server");
     8             input.setAttribute("size", "50");  
     9             div.appendChild(input);  
    10          
    11             var btnRemove = document.createElement("a");  
    12             btnRemove.setAttribute("href", "#");  
    13             btnRemove.innerText = "删除";  
    14             btnRemove.setAttribute("onclick", "removeAttachment(this)");    
    15             btnRemove.setAttribute("style", "text-decoration: none");  
    16             var span = document.createElement("span");  
    17             span.setAttribute("style", "padding-left: 5px");  
    18             span.appendChild(btnRemove);  
    19             div.appendChild(span);  
    20             document.getElementById("divAttachment").appendChild(div);  
    21         }  
    22         function removeAttachment(ctrl) {  
    23             while (ctrl.tagName != "DIV") {  
    24            
    25                 ctrl = ctrl.parentNode;  
    26             }  
    27             ctrl.parentNode.removeChild(ctrl);  
    28         }  
    29       
    30  </script>

    后台代码:

     1  protected void Page_Load(object sender, EventArgs e)
     2     {
     3 
     4         if (!Page.IsPostBack) {
     5             System.Web.HttpFileCollection files = Request.Files;
     6 
     7             for (int fileCount = 0; fileCount < files.Count; fileCount++)
     8             {
     9 
    10                 System.Web.HttpPostedFile postedfile = files[fileCount];
    11                 int size = postedfile.ContentLength;
    12                 if (size <= 8388608)
    13                 {
    14                     string fileName = System.IO.Path.GetFileName(postedfile.FileName);
    15                     if (!String.IsNullOrEmpty(fileName))
    16                     {
    17 
    18                         string fileExtension = System.IO.Path.GetExtension(fileName);    //获取文件类型  
    19 
    20                         //上传目录  
    21                         string directory = Server.MapPath("upload");
    22                         //文件全路径  
    23                         string path = directory + "\" + fileName;
    24 
    25                         //判断目录是否存在  
    26                         if (!Directory.Exists(directory))
    27                         {
    28                             Directory.CreateDirectory(directory);
    29                         }
    30                         //文件存在就删除文件  
    31                         if (File.Exists(path))
    32                         {
    33                             File.Delete(path);
    34                         }
    35                         //上传到服务器的路径  
    36 
    37                         postedfile.SaveAs(path);
    38                     }
    39                 }
    40                 else if (size > 8388608)
    41                 {
    42                     Response.Write("<script>alert('上传文件不得超过8M');</script>");
    43 
    44                 }
    45             }  
    46         
    47         }
    48    }

    第二种:

    使用asp.net的服务器控件 BUTTON按钮进行提交

    <form id="form1" runat="server"  enctype="multipart/form-data" action="Default.aspx" method="post" >
    
     <input type="button" value="添加附件" onclick="addAttachment()" />  
     <div id="divAttachment">  
     </div>  
     <asp:Button runat="server" ID="button1" Text="提交" OnClick="sub_Fun" />
     </form>

    上面JS中去掉

    input.setAttribute("runat", "server");
    后台代码添加一个 public void sub_Fun(object sender, EventArgs e){}函数即可。
  • 相关阅读:
    每天1题算法题(4)-合并二叉树 (√)
    每天1题算法题(3)-二叉树的最大深度 (√)
    每天1题算法题(2)-二叉树的层序遍历
    每天1题算法题(1)-二叉树的中序遍历
    uni-app登录页白屏
    uni-app真机运行顶部导航栏右边按钮显示不全的问题处理
    uni-app强制横屏设置
    uni-app离线打包步骤
    银行数据仓库体系实践(18)--数据应用之信用风险建模
    银行数据仓库体系实践(17)--数据应用之营销分析
  • 原文地址:https://www.cnblogs.com/eason-chan/p/3638488.html
Copyright © 2020-2023  润新知