前端jsp:
<div class="blockhead">
<span>导入报盘</span>
<form id="importForm" action="" method="post" enctype="multipart/form-data" style="float: right;margin-right: 20px;padding-top: 3px;">
<input type="file" name="textfield" class="file" style="width:170px;" id="textfield" height="22px" οnchange="checkFile(this)" />
<a href="javascript:void(0)" style="background-color: #ff6600;margin-left: 0px;" οnclick="importData()">导入</a>
</form>
</div>
function checkFile(file){
var filepath = file.value;
if(filepath ==""){
alert("请选择文件");
return ;
}
filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length);
if(filepath != 'xls'){
mbox({
title : "系统提示",
message : "只能上传指定的模板文件"
});
$("#importForm")[0].reset();
}
}
//报盘导入数据
function importData() {
if($("#azj011").val() >= 300){
mbox({
title : "系统提示",
message : "上传数据达到最大限制!"
});
return ;
}
var filepath =$("#textfield").val();
if(filepath ==""){
mbox({
title : "系统提示",
message : "请选择文件!"
});
return ;
}
//显示蒙版
var cover = $("<div class='covermask'/>").css({
width : $(window).width(),
height : $(window).height(),
opacity : 0.7,
"z-index" : 999
}).appendTo($("body"));
$("body").append($("<img style='z-index: 999;' class='loading' src='/icon/loading.gif'/><span style='z-index: 999;' class='loadingspan'>数据处理中,请稍等...</span>"));
// $("#importForm").attr("action","${base!}/get_importdata.do?id=+'id + '&aab301=${b304!}&funid=" + $("#funid").val());
$.ajaxFileUpload({
url: "${base!}/get_importdata.do?Id="_id,
secureuri:false,
fileElementId: 'textfield',
dataType: 'json',
success: function (data, status){
if(data.hasError == "true"){
var errors = [];
for(var key in data){
if(key != "hasError"){
errors.push("第" + key + data[key]);
}
}
mbox({
title : "系统提示",
message : errors.join("<br>"),
onClose : function(){
$(".loading,.covermask,.loadingspan").remove();
refreshPage();
}
});
}else if(data.status == "2"){
mbox({
title : "系统提示",
message : data.message,
onClose : function(){
$(".loading,.covermask,.loadingspan").remove();
refreshPage();
}
});
}else if(data.status == "4"){
mbox({
title : "系统提示",
message : data.message,
onClose : function(){
//刷新列表信息,以及数统计
// goSelectPage();
///refreshLocation("1", "");
$(".loading,.covermask,.loadingspan").remove();
refreshPage();
}
});
}
},
error: function (data, status, e){
mbox({
title : "系统提示",
message : "上传失败",
onClose : function(){
$(".loading,.covermask,.loadingspan").remove();
refreshPage();
}
});
}
});
}
注:此处mbox 及
refreshPage();
是提示框和刷新函数,此处忽略.
servlet:
@ResponseBody
@RequestMapping("get_importdata.html")
public void importData(MultipartHttpServletRequest request, String Id, ModelMap model, HttpServletResponse response){
BpWebDto dto = new BpWebDto();
dto.setId(Id);
Iterator<String> fileIter = request.getFileNames();
String message="";
if (!fileIter.hasNext()) {
message="模板文件错误,请查看!";
JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
return;
}
CommonsMultipartFile file = (CommonsMultipartFile) request.getFile("textfield");
String fileName = file.getOriginalFilename();
if (!fileName.endsWith(".xls")) {
message="模板文件错误,请查看!";
JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
return;
} else if(StringUtils.isBlank(Id)){
message="请先填写并保存基本信息!";
JSONUtil.writejson(response, "{'status' : '2', 'message' : '" + message + "'}");
return;
} else {
//保存到临时表中
// bpMng.importData(file, dto);
// //调用过程
// message = bpMng.importDataCheck(file, dto);
//在Java中做出校验
try {
ExcelBean<BpWebDto> excelBean = importExcelMng.tempSaveInJavaBean(file.getInputStream(), dto);
if(excelBean == null){//达到最大数量限制
message = "数量已达到最大值。";
}else if(excelBean.hasErrors()){//报盘文件存在错误信息
excelBean.getErrors().put("hasError", "true");
JSONUtil.write(response, excelBean.getErrors());
return;
}else{//通过校验,数据保存至临时表
importExcelMng.saveData(excelBean.getDatas(), dto);
message = bpMng.imp