前台代码:
<div class="layui-row bd-border "> <div class="layui-input-inline"> <label class="layui-form-label">选择文件: </label> <div class="layui-input-inline" style="width: 150px;"> <button type="button" class="layui-btn" id="test1"> <i class="layui-icon"></i>选择 </button> </div> <div class="layui-input-inline"> <button class="layui-btn bd-btn-radius layui-btn-normal" id="submit">确 定</button> </div> </div> </div>
$(function(){ var uploadFileUrl = '../map/upload'; layui.use('upload', function(){ var upload = layui.upload; //执行实例 var uploadInst = upload.render({ elem: '#test1' //绑定元素 ,url: '../map/upload' //上传接口 ,done: function(res){ //上传完毕回调 alert(res); } ,error: function(){ //请求异常回调 alert(111); } ,accept:'file'//允许的文件类型 ,auto: false//选择文件后是否自动上传 ,bindAction:'#submit' }); }); });
后台接收代码:
@RequestMapping(value = "/upload") @ResponseBody public Map<String,Object> upload( MultipartFile file, HttpServletRequest request){ Map<String,Object> modelMap = new HashMap<>(); List<MapPoint> mapPointList = new ArrayList<>(); //读取IO流文件 InputStream input = null; XSSFWorkbook wb = null; try { input=file.getInputStream(); wb=new XSSFWorkbook(input); //读取页 for(int sheetNum=0;sheetNum<wb.getNumberOfSheets();sheetNum++){ XSSFSheet xssfSheet = wb.getSheetAt(sheetNum); if(xssfSheet==null){ continue; } //读取行 for(int rowNum=1;rowNum<xssfSheet.getLastRowNum()+1;rowNum++){ MapPoint mapPoint = new MapPoint(); XSSFRow row= xssfSheet.getRow(rowNum); if(row!=null){ for(int cellNum=0;cellNum<row.getLastCellNum();cellNum++){ row.getCell(cellNum);//获取每一个单元格具体值,可根据需求转成任意数据类型 } } mapPointList.add(mapPoint); } } } catch (IOException e) { e.printStackTrace(); } mapService.insertMapPoint(mapPointList); modelMap.put("success",true); return modelMap; }
需要注意的是,需要在spring-mvc.xml中加如下配置,后台才能正常接收到文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">