asp.net 动态添加多附件上传

 注意:页面上初始的file控件必须有runat="server"标志。也就是说,这个页面上必须至少有一个runat="server"的file控件,否则后台接收不到Request.Files。

<FORM id="form1" runat="server">
            <DIV id="div1">
                <INPUT ID="File1" TYPE="file" NAME="File1" runat="server">
                <INPUT TYPE="button" VALUE="添加附件" οnclick="javascript:AddFile();">
                <INPUT TYPE="button" VALUE="删除附件" οnclick="javascript:RemoveFile();">
                <ASP:LISTBOX id="ListBox1" Width="200px" Height="100px" runat="server"></ASP:LISTBOX>
                <ASP:BUTTON id="Button1" runat="server" Text="保存" Width="60px"></ASP:BUTTON>
            </DIV>
            <ASP:LITERAL ID="lResult" Runat="server"></ASP:LITERAL>
            
        </FORM>
 

<SCRIPT language="javascript">
<!--
 function AddFile()
 {   
 
    var file = document.getElementById("div1").firstChild;
    if(file.value == "")
    {
        alert("请选择文件!");
        return;
    }
   
    var ary = file.value.split("/");
    var filename = ary[ary.length-1];
   
    var bAddFile = true;
    if(CheckOptionsExists(filename,document.getElementById("ListBox1")))
    {
       
        alert("文件已经存在列表中!");
        div1.removeChild(file);
        bAddFile = false;
       
    }
   
   
    var f = document.createElement("input");
    f.type = "file";
    f.name = "file"
   
    div1.insertBefore(f,div1.firstChild);
   
    if(!bAddFile)
    {
        return
    }
    var o = new Option();
    o.innerText = filename;
    o.value = file.uniqueID;
    document.getElementById("ListBox1").appendChild(o);
   
    file.style.display = "none";
   
    
   
 }
 
 function RemoveFile()
 {
    var lst = document.getElementById("ListBox1");
    if(lst.selectedIndex == -1)
    {
        alert("请选择要删除的附件!");
        return;
    }
   
    var id = lst.value;
    div1.removeChild(document.all[id]);
    lst.removeChild(lst.options[lst.selectedIndex]);
    div1.firstChild.style.display = "";
    
 }
 
 //检查选项是否存在.
 function CheckOptionsExists(value,ddl)
 {
    for(var i=0;i<ddl.options.length;i++)
    {
        if(ddl.options[i].innerText == value)
        {
            return true;
        }
    }
    return false;
 }
 
 
 
//-->
        </SCRIPT>
 

 

后台代码就比较简单了。没有过多的处理,只是一个简单的保存。

 

private void Button1_Click(object sender, System.EventArgs e)
        {
            
            for(int i=0;i<Request.Files.Count;i++)
            {
                if(Request.Files[i].ContentLength >0)
                {
                    string filename = System.IO.Path.GetFileName(Request.Files[i].FileName);
                    Request.Files[i].SaveAs(Server.MapPath(filename));
                    this.ListBox1.Items.Add(new ListItem(filename,filename));
                }

                this.lResult.Text = "保存成功!";
            }
           
        }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值