1.表单
<form class="layui-form" id="uploadForm">
<div class="layui-form-item">
<label class="layui-form-label">文件类型</label>
<div class="layui-input-block">
<select name="filetype" id="filetype" lay-filter="aihao">
<option value="0">人才信息</option>
<option value="1" selected="">课题信息</option>
<option value="2">论文信息</option>
</select>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<input type="file" name="file">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<input type="button" class="layui-btn" id="save_file" value="提交表单">
<input type="reset" class="layui-btn" value="重置">
</div>
</div>
</form>
2.ajax处理
//上传配置文件
$("#save_file").click(function () {
var filetype = $("#filetype").val();
var formData = new FormData($("#uploadForm")[0]);
formData.append("filetype",filetype);
$.ajax({
url: 'http://localhost:8085/uploadfile.do',
type: 'POST',
data: formData,
async: false,//异步
cache: false,
contentType: false,//必须false才会自动加上正确的Content-Type
processData: false,//必须false才会避开jQuery对 formdata 的默认处理
success: function (returndata) {//上传成功回调函数
layui.use('layer', function () {
var layer = layui.layer;
layer.msg(returndata.returnMsg, {
icon: 1
});
});
setTimeout(() => {
closeLayui();
}, 400);
},
error: function (returndata) {
console.log("文件上传失败");
}
});
});
3.后台处理代码
@RequestMapping(value="/uploadfile.do")
@ResponseBody
public JSONObject fileUpLoad(String filetype,@RequestParam("file") CommonsMultipartFile file){
JSONObject json = new JSONObject();
if(!file.isEmpty()){
String path = "D:/upload/";
File parent = new File(path);
if(!parent.exists()){
parent.mkdirs();
}
String fileName = file.getOriginalFilename();
String fileType = fileName.substring(fileName.lastIndexOf("."));
File targetFile = new File(path,new Date().getTime()+fileType);
try {
file.getFileItem().write(targetFile);
List<List<String>> telentList = SaleorderExcel.readExcel(targetFile.getPath());
talentinfoService.insertTalentinfo(telentList);
System.out.println(telentList);
json.put("returnCode", "000000");
json.put("returnMsg", "导入成功");
return json;
} catch (Exception e) {
e.printStackTrace();
json.put("returnCode", "111111");
json.put("returnMsg", "文件导入失败,请检查内容合法性");
return json;
}
}
json.put("returnCode", "222222");
json.put("returnMsg", "请选择文件");
return json;
}