多附件上传

最近做的一个项目用到了多附件上传,由于时间有限,在多方参考了网上的资料后只写了一个实现,下一步有时间的话做成一个UC 

言归正传:

思路是这样的:在页面上放置一个table,每点一次添加附件都会在table里添加一行记录(一个file控件,一个移除按钮)。同样,如果要移除会删除table里的一行记录。最后将多附件统一进行上传操作

< a href = " javascript:addFile(); " > 新增附件 </ a >  
< table  >
< tbody id = " tb1 " >
                      
</ tbody >
</ table >

 

后台cs代码:

 

if  (Request.Files.Count  >   0 )
{
 
for (int i = 0; i < Request.Files.Count; i++)
{
if (Request.Files[i].FileName != "")
{
HttpPostedFile file 
= (HttpPostedFile)Request.Files[i];
--文件大小,扩展名判断
//strUrl文件在服务器上的保存路径
 files.SaveAs(strUrl);
}

}

}

 

前台js代码添加和删除

 

var  TotalFiles  =   0 ;
function  addFile()
{
    
var  oTBody  =  document.getElementById( " tb1 " );
    
// create a new row
     var  oTR1  =  document.createElement( " tr " );
    oTBody.appendChild(oTR1);
    
    
var  oTD1  =  document.createElement( " td " );
    
var  oDiv1  =  document.createElement( " div " );

    
var  file = document.createElement( " input " ); 
    file.type 
=   " file " ;
    file.id 
=   " f " +  TotalFiles.toString();
    file.name 
=   " files " +  TotalFiles.toString(); 
    
    oDiv1.appendChild(file);
    
    oTD1.appendChild(oDiv1);
    oTR1.appendChild(oTD1);
    
    
var  oTD2  =  document.createElement( " td " );
    
var  oDiv2  =  document.createElement( " div " );
    oDiv2.setAttribute(
" align " , " left " );
    oDiv2.innerHTML 
=   " <input type="button" οnclick="delFile(this)" "   +   "  value="移除" /> " ;
    oTD2.appendChild(oDiv2);
    oTR1.appendChild(oTD2);
}

function  $(id)
{
    
return  document.getElementById(id);    
}

function  delFile(obj)
{
    
var  oDiv  =  obj.parentNode;
    
var  oTD  =  oDiv.parentNode;
    
var  oTR  =  oTD.parentNode;
    
var  oTBody  =  document.getElementById( " tb1 " );
    oTBody.removeChild(oTR);
}

 

注:enctype="multipart/form-data",这个属性是必须的,否则file控件不起作用。

< form id = " form1 "  runat = " server "  enctype = " multipart/form-data "   >

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值