前臺代碼:
<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">