前台代码:
<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">
本文介绍使用layui实现文件上传功能,并通过Java后台解析上传的Excel文件,将数据读取到列表中。

1164

被折叠的 条评论
为什么被折叠?



