Bootstrap Fileinput 4.4.7文件上传实例详解
本实例所做功能为发送带附件邮件,可以上传多个附件,操作为选择一个附件以后自动上传,然后继续选择附件,填写完表单其他信息,点击保存发送带附件邮件。
HTML标签
js初始化,设置全局文件名参数
varfileName=[];
functioninitFileInput(id,url){
$("#"+id).fileinput({
language:'zh',
uploadAsync:false,
uploadUrl:url,
browseClass:"btnbtn-secondary",
textEncoding:"UTF-8",
showUpload:false,
showPreview:true,
dropZoneEnabled:false,
maxFileCount:5,
fileActionSettings:{
showUpload:true
},
enctype:'multipart/form-data',
msgFilesTooMany:"选择上传的文件数量({n})超过允许的最大数值{m}!",
}).on("filebatchselected",function(event,files){
$("#fileUpload").fileinput("upload");
}).on("filebatchuploadsuccess",function(event,data,previewId,index){
if(data.response.success==true)
{
fileName.push(data.response.fileName);
}else{
alert("上传失败!");
}
$("#fileUpload").fileinput("clear");
$("#fileUpload").fileinput("reset");
}).on('fileerror',function(event,data,msg){
alert(msg);
});
}
java后台上传文件代码
@RequestMapping(value="/fileupload") @ResponseBody publicMapfileUpload(HttpServletRequestrequest,HttpServletResponseresponse){ ResourceBundlebundle=PropertyResourceBundle.getBundle("application"); MultipartHttpServletRequestmultipartRequest=(MultipartHttpServletRequest)request; Map fileMap=multipartRequest.getFileMap(); StringrootPath=bundle.getString("upLoadUrl"); StringfilePath=rootPath; Map map=newHashMap<>(); map=uploadFiles(filePath,fileMap); returnmap; }
实际上传操作,返回上传操作经过处理的文件名,保证服务器端文件名唯一
publicMapuploadFiles(StringsavePath,Map fiLeMap){ Map map=newHashMap<>(); try{ StringfileName=""; if(fiLeMap!=null){ for(Map.Entry entity:fiLeMap.entrySet()){ MultipartFilef=entity.getValue(); if(f!=null&&!f.isEmpty()){ Stringuuid=UUID.randomUUID().toString(); fileName=uuid+"#"+f.getOriginalFilename(); FilenewFile=newFile(savePath+"/"+fileName); f.transferTo(newFile); } } } map.put("success",true); map.put("fileName",fileName); returnmap; }catch(Exceptione){ map.put("success",false); returnmap; } }
ajax提交其他表单参数和所传附件文件名集合
$.ajax({
type:"POST",
url:所需要请求地址,
dataType:"json",
traditional:true,
data:{
service:$("#service").select2('val').replace("All",""),
startTime:$("#start").val(),
endTime:$("#end").val(),
reason:$("#reason").val(),
fileName:JSON.stringify(fileName),
outterEmail:isOutterEmail,
innerEmail:isInnerEmail,
isSendEmail:isSendEmail,
subService:$("#subService").select2('val'),
runningStatus:$("#runningStatus").select2('val')
},
success:function(data){
$("#loadingModal").modal("hide");
fileName.splice(0,fileName.length);
alert(data.msg);
if(data.success){
location.href="revision";
}
},
error:function(xhr){
$("#loadingModal").modal("hide");
alert("保存失败");
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。