js多文件上传删除

1)html:

<tr>
<td class="tr-left">上传附件:</td>
<td class="tr-right"  colspan="3">
<input type="button" id="filebtn" name="filebtn" style="width:80px" value="请选择文件" >
<div id="divflag" style="display:inline;height:21px;width:80px;">
<c:if test="${gerne == 'updateLoaninfo'}">
<c:forEach var="item" items="${nameArr}">
<div style="display:inline;height:21px;width:80px;">
<input type="file" name="attinfo" style="display:none;"/><!--空文件 -->
<span>${item}</span><a οnclick="deletex(this)" data-name="${item}"><i style="display:inline-block;width:16px;height:16px;background:#f00;border-radius:8px;text-align:center;line-height:15px;color:#fff;font-style:normal;margin-right:10px;">×</i></a>
</div>
</c:forEach>
</c:if>
</div>
</td>
</tr>


2)JS

//文件上传事件
$('#filebtn').click(function(){
crateForm2($(this),'attinfo');
});

function crateForm2(that,name){
var uploadFile = $('<div style="display:inline;height:21px;width:80px;"><input name="'+name+'" id="uploaderInput" style="display:none;" type="file" multiple/></div>');
$("#divflag").append(uploadFile);  
   $("#uploaderInput").bind("change",function(e){  
       //上传文件时,处理相关逻辑 
       $(this).removeAttr("id");  
    var fileList = this.files;
    var len = fileList.length;
if(len> 0){
for(var i=0;i<len;i++){
var value= fileList[i].name;
if(nameArr.indexOf(value) != -1){//有相同文件名
$.messager.alert('提示信息', value+'文件已存在,请重新选择', 'warning');
uploadFile.remove();//把新选择的文件删除
   return false;
}else{
nameArr.push(value);
var txt = $('<span>'+value+'</span><a οnclick="deletex(this)" data-name="'+value+'"><i style="display:inline-block;width:16px;height:16px;background:#f00;border-radius:8px;text-align:center;line-height:15px;color:#fff;font-style:normal;margin-right:10px;">×</i></a>');
uploadFile.append(txt);
}
}
}
    });  
    $("#uploaderInput").click();   

}

  function deletex(that){
debugger;
var $dom = $(that).closest('div');
var len = $dom.find('span').length;
var val = $(that).attr('data-name');
if(len >1){//如果一次选择多次文件
var $a = $(that);
   var $span = $a.prev();
   $a.remove();
   $span.remove();
}else{//如果一次选择一个文件
$dom.remove();
}
//删除文件名称
nameArr.remove(val);
}


3)后台代码

CONTROLLER:

String nameArr[]=null;
//获取所有上传文件名称
String namestr = request.getParameter("namestr");
if(namestr != null && !"".equals(namestr)){
nameArr = namestr.split(",");
}
ArrayList<MultipartFile> arrayList = new ArrayList<MultipartFile>();

if(namestr != null && !"".equals(namestr)){
for(int i=0,len=files.length;i<len;i++){
if(files[i].getSize()>0){
// 获得原始文件名  
       String fileName = files[i].getOriginalFilename();  
     //过滤选择后又删除的文件
if(nameArr.length>0){
Boolean flag = Arrays.asList(nameArr).contains(fileName);
if(flag){//名称数组中不包含这个文件,就不上传
arrayList.add(files[i]);
}
}
}else{
arrayList.add(files[i]);//空
}

}
}


SERVICE:

String id = (String) map.get("v_code");
//保存上传附件
int len = files.size();
//获取图片保存位置
String uppath = PropertyUtil.getProperty("imagePath");
for(int i=0;i<len;i++){
if(files.get(i).getSize()>0){
// 获得原始文件名  
       String fileName = files.get(i).getOriginalFilename();  
       // 新文件名  
String newFileName = id + "--" + fileName;
       //把文件保存到磁盘
          try {  
          //转存文件
          files.get(i).transferTo(new File(uppath + "/"+newFileName));
          }catch (Exception e) {  
              e.printStackTrace();
          } 
          //文件上传位置
          path += uppath + "/"+newFileName+",";
}else{
//重新申请时未上传文件用之前上传的文件
String newFileName =  oldcode + "--" + nameArr[i];
path += uppath + "/"+newFileName+",";
}
}
if(!"".equals(path)){
path = path.substring(0, path.length()-1);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值