由于最近项目的需求,需要做一个上传文件的插件,支持上传,下载,删除等功能,该插件主要运用了jQuery与jqgrid以及easyui,先贴出主要代码
/** * 上传附件插件--uploadFile * 调用示例: * $("#commonUploadBtn").click(function(){ $("#commonUpload").uploadFile({ businessType:"身份甄别",--业务类别 businessID:"2",--业务id filePath:"test",--上传文件的路径 }); 参数说明: 1.businessType 业务类型,对应到数据字典中 2.businessID 业务id 对应数据字典中的code 3.filePath 上传文件的路径,这个需要实现定义好规范,在程序中添加dir */(function ($) { $.fn.extend({ uploadFile:function(options){ //生成随机数,用来设置image标签的id var fileRandom = Math.floor(Math.random()*100000+1); //初始化内部默认参数 var customParmas = { gridID:"g_"+fileRandom,//上传文件表格ID formID:"form_"+fileRandom,//表单ID pager: "pager_"+fileRandom,//分页ID textfield_fj:"text_"+fileRandom, currentTag : this,//当前标签对象 uploadForm:"uploadForm_"+fileRandom }; //默认参数 var defaultsParams = { upload_url:contextPath + "/uploadAttachment/uploadFile",//上传文件的URL del_url:contextPath + "/uploadAttachment",//删除文件URL list_url:contextPath + "/uploadAttachment",//查询列表的URL down_url:contextPath + "/uploadAttachment/download",//下载 sortname:"createDate",//排序字段,默认:createDate sord: "desc",//排序类型:升序,降序 ,默认降序 }; //装载默然参数和传人的参数对象 var options = $.extend(defaultsParams, options); //渲染视图 var renderView =function(){ var html = ""; html +="<div class='fj_main'>"; html += "<div class='ul1'>"; html += "<span class='fj_top'>上传附件:</span>"; html += "<span>"; html +="<form id='"+options.uploadForm+"' enctype='multipart/form-data' action='"+options.upload_url+"' method='POST'>"; //隐藏域 html += "<input type='hidden' id='businessType' name='businessType' value='"+options.businessType+"' />"; html += "<input type='hidden' id='businessID' name ='businessID' value='"+options.businessID+"' />"; html += "<input type='hidden' id='filePath' name ='filePath' value='"+options.filePath+"' />"; html += "<input type='text' id='"+customParmas.textfield_fj+"' class='mInin2' placeholder='请选择文件'/>"; html += "<input type='button' class='mInbu1' value='选择文件...'/>"; html += "<input type='file' name ='logoFile' class='coninf1' id='logoFile' />"; html += "<form>"; html += "</span>"; html += "</div>"; html += "<ul class='ul2'>"; html += "<li><a href='javascript:void(0)' class='delete'><span><img src='../images/icon/delete.png'></span>移除附件</a></li>"; html += "<li><a href='javascript:void(0)' class='download'><span><img src='../images/icon/page_white_put.png'></span>下载附件</a></li>"; html += "<li><a href='javascript:void(0)' class='upload'><span><img src='../images/icon/accept.png' ></span>确认上传</a></li>"; html += "<li><a href='javascript:void(0)' class='cancel'><span><img src='../images/icon/arrow_refresh.png'></span>重新选择</a></li>"; html += "</ul>"; html += "<div >"; html+="<table id='"+customParmas.gridID+"'></table> "; html+="<div id='"+customParmas.pager+"'></div>"; html += "</div>"; html+="</div>"; $(customParmas.currentTag).prepend(html); initGrid(); bindEvent(); }; //动态绑定事件 var bindEvent = function(){ //绑定选择文件change事件 $("#logoFile").change(function(){ //检查文件的格式 var checkFileTypeResult = checkFileType($("#logoFile").val()); //判断上传的文件的格式是否正确 if(!checkFileTypeResult){ restFileInput(); } //检查文件的大小 var checkFileSizeResult = checkFileSize($("#logoFile").get(0)); if(!checkFileSizeResult){ restFileInput(); }else{ setFileInput(); } }); //绑定确认上传文件事件 $(".upload").click(function(){ uploadFile(); }); //绑定删除上传文件事件 $(".delete").click(function(){ batchDelFile(); }); //绑定取消上传文件事件 $(".cancel").click(function(){ restFileInput(); }); //绑定下载文件事件 $(".download").click(