多附件上传下载删除(表格形式展示)

最近在做附件上传,之前没有做过,在这里记录一下

效果 ( 项目隐私问题,没有截全屏)

图一:上传附件,删除
上传(再次选择会覆盖掉表格之前的数据)
删除(因为这一部分还没提交至数据库,所以只是删除表格信息)
多附件上传下载删除(表格形式展示)_第1张图片
图二:下载,删除
此处的上传按钮,选择完文件会覆盖掉表格现有数据(其实是选择完重新加载了一个表格),别担心原有数据丢失其实还存在数据库中,只要不点击删除!(这一部分以后要修缮的)多附件上传下载删除(表格形式展示)_第2张图片

HTML 代码

function submitHandler() { if ($.validate.form()) { if(document.getElementById("file").files.length<=0){ //没有附件就直接提交 $.operate.save(prefix + "/add", $('#form-blacklist-add').serialize()); }else{ var formData =new FormData($('#form-blacklist-add')[0]); var fileAdd2=document.getElementById("file").files; for(var i=0;i

JS

$(document).ready(function(){  
	var FileList2 = {};
	var fileAdd={};
	retableEdit(FileList2);
});


//点击事件
function clickfile(id){
	$("#file").click();
}
//选择文件后事件
function fileonchange(){
	fileAdd=document.getElementById("file").files;
	for(var i=0;i删除');
				return actions.join('');
            }
		}]	
    };
	$.table.destroy("bootstrap-table");
    $.table.initData(options);
}


function del(node) {
	$(node).parent().parent().remove();//删除表格数据
}

function delIds(id,node) {//删除就调用自己的后台方法,此处就不贴了
	//删除数据库数据
	$.modal.confirm("确认删除此附件吗?", function() {
//		$.operate.post(ctx+"check/enclosure/removeById/"+id);
		 $.ajax({
    	        url: ctx + "check/enclosure/removeById/"+id,
    	        type:"post",
    	        dataType:"JSON",
    	        beforeSend: function () {
    	        	$.modal.loading("正在处理中,请稍后...");
    	        },
    	        success: function(result) {
    	        	if(result.code=="0"){
    	        		$(node).parent().parent().remove();//删除表格数据
    	        	}else{
    	        		$.modal.msgError(result.msg);
    	        	}
    	        	$.modal.closeLoading();
    	        }
    	    });
		
    })
}

function retableEdit(FileList2){
	var options = {
        data:FileList2,
        pagination:false,
        striped:true,
        sortOrder:false,
        search:false,
        showSearch:false,
        showPageGo:false,
        showRefresh:false,
        showColumns:false,
        showToggle:false,
        modalName: "文件",
        showExport: false,
        columns: [{
            checkbox: false,
           	visible: false
        },
        {
            title: "序号",
            align : 'center',
            formatter: function (value, row, index) {
         	    return index+1;
            }
        },
        {
        	field: 'enclosureId',
            title : '附件ID',
            visible: false
        },
		{
			field : 'enclosureName', 
			title : '附件名称',
			align : 'center',
			visible: true,
			formatter: function(value, row, index) {
				return $.table.tooltip(value);
			}
		},
		{
			field : 'enclosureSize', 
			title : '附件大小',
			align : 'center',
			sortable: true,
			formatter: function(value, row, index) {
				if(value<=1000){
					  return value+"bytes";
				}
				if(value/1000<=1000){
					  return (value/1000).toFixed(2)+"KB";
				}
				if(value/1000/1000<=1000){
					  return (value/1000/1000).toFixed(2)+"MB";
				}
				return (value/1000/1000/1000).toFixed(2)+"GB";
			}
		},
		{
			field : 'enclosureType', 
			title : '附件类型',
			sortable: true,
			align : 'center',
			formatter: function(value, row, index) {
				return $.table.tooltip(value);
			}
		},
		{
			field : 'enclosurePath', 
			title : '附件地址',
			visible: false
		},
		{
			title : '操作',
			align : 'center',
			sortable: true,
			formatter: function(value, row, index) {
            	var actions = [];
            	var pathName = window.document.location.pathname;
	        	var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
            	actions.push('下载    ');
            	actions.push('删除');
				return actions.join('');
            }
		}]	
    };
	$.table.destroy("bootstrap-table");
    $.table.initData(options);
}


//保存信息 刷新表格
function save(url, data, callback) {
	$.ajax({
		type:"post",
		url: url,
		async:true,
		cache: false,
  		processData: false,
  		contentType: false,
		dataType:"JSON",
		data: data,
		beforeSend: function () {
        	$.modal.loading("正在处理中,请稍后...");
        	$.modal.disable();
        },
		success:function (result) {
			if (typeof callback == "function") {
        	    callback(result);
        	}
        	$.operate.successCallback(result);
		}
	});
}

Controller

 /**
   * 新增附件
   * MultipartFile 单附件
   * MultipartFile[]  多附件
   */
  @PostMapping("/add")
  @ResponseBody
  public AjaxResult addSave(@RequestParam(value = "file", required = false) MultipartFile[] files)
  {
       if (files != null){
   		for (MultipartFile mf : files) {
			try {
				String originalFilename = mf.getOriginalFilename();
    			String filePath=Global.getUploadPath();
    			String fileUrl;
				fileUrl = FileUploadUtils.upload(filePath, mf);
				String suffix = mf.getOriginalFilename().substring(mf.getOriginalFilename().lastIndexOf(".") + 1);
    			JcEnclosure enclosure=new JcEnclosure();
    			enclosure.setParantId(jcCarBlacklist.getId());//父对象id
    			enclosure.setEnclosureSign("carBlacklist");
    			enclosure.setEnclosureName(originalFilename);
    			enclosure.setEnclosurePath(fileUrl);
    			enclosure.setEnclosureSize(Long.parseLong(BigDecimal.valueOf(mf.getSize())+""));
    			enclosure.setEnclosureType(suffix);
    			enclosure.setCreateBy(ShiroUtils.getLoginName());
    			enclosure.setCreateTime(DateUtils.getNowDate());
    			jcEnclosureService.insertJcEnclosure(enclosure);
			} catch (IOException e) {
				e.printStackTrace();
				return AjaxResult.error();
			}
   		}
	}
       return success(); 

  }

如果你有更好的上传下载,可以留言,互相学习!

你可能感兴趣的:(File)