技术准备:

1.文件上传

fileuploadtest.jsp

<html>
<head><base href="<%=basePath%>"><title>演示文件上传</title>
</head>
<body>
<%--文件上传的表单三个条件:1.表单组件标签只能用:<input type="file">下面这些是平常常用的组件:<input type="text|password|radio|checkbox|hidden|button|submit|reset|file"><select>,<textarea>等2.请求方式只能用postpost:参数写在请求体里面,既能提交文本数据,也可以提交二进制数据;长度理论上没有限制,不能使用缓存get:参数写在url上,url在请求头上,只能向后台提交文本数据;对参数长度有限制,可以使用缓存3.表单的编码格式只能用:multipart/from-data根据HTTP协议的规定,浏览器每次向后台提供参数,都会对参数进行统一编码了、;默认的编码是urlencoded,这种编码格式只能对文本数据进行编码浏览器每次向后台提交参数,都先会把参数转换成字符串,然后对这些数据同一进行编码;--%>
<form action="workbench/activity/fileUpload.do" method="post" enctype="multipart/form-data"><input type="file" name="myFile"><br><input type="text" name="userName"><br><%--上面这两个并不冲突,也就是及上传一个文件也传一个字符串到后台--%><input type="submit" value="提交">
</form></body>
</html>

controller层-》fileUpload()

springmvc的配置文件:

<!-- 配置文件上传解析器 id:必须是multipartResolver--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="#{1024*1024*5}"/><property name="defaultEncoding" value="utf-8"/></bean>

controller:

 /*注意:* 这里需要先在springMVC中的配置文件中先配置文件上传解析器* 用于从前端放在响应体中的文件解析出来才能放到controller层接收*///测试文件上传controller@RequestMapping("/workbench/activity/fileUpload.do")@ResponseBodypublic Object fileUpload(String userName, MultipartFile myFile) throws IOException {//把文本数据打印在控制台System.out.println("userName="+userName);//把文件在服务器指定的目录中生成同一个文件String originalFilename = myFile.getOriginalFilename();File file = new File("D:\\实践项目\\CRM后台系统\\serverDir\\"+originalFilename);myFile.transferTo(file);//返回信息ReturnObject returnObject=new ReturnObject();returnObject.setMessage("上传成功");returnObject.setCode(Constant.RETURN_OBJECT_CODE_SUCCESS);return  returnObject;}

2.使用Java解析excel文件:使用apache-poi

//使用apache-poi解析excel文件
public class ParseExcelTest {public static void main(String[] args) throws IOException {//根据excel文件生成HSSFWorkbook对象,封装了excel文件哎都所有信息InputStream is = new FileInputStream("D:\\实践项目\\CRM后台系统\\serverDir\\studentList.xls");HSSFWorkbook wb = new HSSFWorkbook(is);//根据wb获取HSSFSheet对象,封装了一页的所有信息HSSFSheet sheet = wb.getSheetAt(0);//页下标,下标从零开始//根据sheet获取HSSFSheet获取行HSSFRow row=null;HSSFCell cell=null;for (int i=0;i<=sheet.getLastRowNum();i++){//sheet.getLastRowNum()最后一行的下标row = sheet.getRow(i);//行下标,从零开始for (int j=0;j<row.getLastCellNum();j++){//row.getLastCellNum()最后一列下标+1//根据row对象获取HSSFCell对象,,封装一列的信息cell = row.getCell(j);//列下标,从零开始//获取列中的数据System.out.print(HSSFUtils.getCellValueForStr(cell)+" ");}//每一行中所有列都打完,打印一个换行System.out.println();}}}

工具类:


/*** 关于excel文件操作的工具类*/
public class HSSFUtils {/*** 从指定的HSSFCell对象中获取列的值* @return*/public static String getCellValueForStr(HSSFCell cell){String ret="";if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING){ret=cell.getStringCellValue();}else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){ret=cell.getNumericCellValue()+"";}else if(cell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){ret=cell.getBooleanCellValue()+"";}else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA){ret=cell.getCellFormula();}else{ret="";}return ret;}
}

注:使用Ajax向后台提交文件注意要设置是否要转成字符串和是否要进行encoded编码

并注意1.val()获取的是文件的名称,比对是否是所需文件格式要进行字符串的裁剪

str.substr(str.lastIndexOf(".")+1)//截取文件的后缀名

2.想要获取文件,需要从document中获得

其中有两种方式:1)document.getElementById()

2)$("按钮")[0].files[0]

 //给批量导入的导入按钮添加单击事件$("#importActivityBtn").click(function (){//收集参数var activityFileName=$("#activityFile").val();//获取文件名称var suffix=activityFileName.substr(activityFileName.lastIndexOf(".")+1).toLocaleLowerCase();//截取字符串拿到后缀if (suffix!="xls"){alert("只支持xls文件!");return ;}var activityFile=$("#activityFile")[0].files[0];//得到文件本身//document.getElementById()//验证文件大小if (activityFile.size>5*1024*1024){alert("文件大小不能超过5MB!");return ;}//FormData这个是ajax提供的一个接口,相当于Java里面的类//这个类可以模拟键值对向后台提供参数。优点就是字符串文本和二进制都可以提交var formData=new FormData();formData.append("activityFile",activityFile);formData.append("userName","testName");//发送请求$.ajax({url:'workbench/activity/importActivity.do',data:formData,type:'post',contentType:false,//设置Ajax向后台提交参数之前,是否把所有的参数统一按urlencoded编码;processData:false,//默认情况下,会将参数转译成字符串格式。dataType:'json',success:function (data){if (data.code=="1"){alert("成功导入"+data.retData+"条数据!");$("#importActivityModal").modal("hide");queryActivityByConditionForPage(1,$("#demo_pag1").bs_pagination('getOption', 'rowsPerPage'));}else {alert(data.message);$("#importActivityModal").modal("show");}}})})

上传excel文件到到服务器(导入信息)相关推荐

  1. 实现web前端上传excel文件到flask服务器

    这里有两种方法:1. html方式:2. javascript方式(jQuery+ajax) 第1种方法:html方式 这种方法直接通过设计form表单相关属性实现将excel表格上传到服务器,并在服 ...

  2. Jquery+SpringMVC实现上传Excel文件,并批量导入

    1.前端代码 function alertUploadFile(){ //创建表单var formData = new FormData();var file = $("#upload&qu ...

  3. 上传excel文件到服务器

    最近遇到了需要上传excel文件,并将excel表中的数据都出来,存到数据库中的需求,今天将步骤整理一下,如下: 一.新建一个html(或jsp页面),如:uploadExcel.html,代码如下: ...

  4. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  5. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  6. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法

    前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...

  7. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  8. vue之 上传 excel文件

    目录 vue之 上传 excel文件 父组件 UploadExcel.vue 效果 vue之 上传 excel文件 父组件 <upload-excel-component :on-success ...

  9. Web项目,网页上传excel文件并解析实战示例

    最近写了一个基于poi解析excel文件的工具类,所以想在web项目中测试一下,就做了这个简单的项目.本项目主要使用了 SpringMVC+RESTful+Maven的风格.适合有一定基础的人员. 源 ...

最新文章

  1. June:Datawhale开源学习小程序升级啦!
  2. 课题背景 一二三代测序技术
  3. 仅仅用几行python代码偷偷复制U盘文件
  4. 吴恩达机器学习(第一章)——初识机器学习
  5. python选择某一行_Python常用语法有哪些 如何快速入门Python开发
  6. 一键抠除路人甲,昇腾CANN带你识破神秘的“AI消除术”
  7. Unity5 VS UE4
  8. android端与windows端通信中文乱码问题
  9. SQLServer性能优化之活用临时表
  10. 【修订版】C#/ASP.Net 面试题及答案(1)
  11. layer——极简的jquery弹出层插件
  12. ssm提交post_SSM中get和post乱码笔记
  13. json 处理日期格式
  14. python服务器运维步骤_python运维服务器
  15. 编写注册表reg文件及批处理操作注册表
  16. 使用QT遍历Json文档及搜索子对象
  17. 快速找回Edge浏览器书签的方法
  18. Java将UTC格式时间转换为北京时间
  19. 维修技术论坛万能预装系统 v5.0
  20. iOS — 百度地图 使用

热门文章

  1. YOLOX的深入理解
  2. 使用Bypass_AV-main进行免杀木马
  3. css设置背景图片自适应(转)
  4. 【问题】如何避免并发情况下的重复提交
  5. C语言null值初探
  6. linux命令查询cpu,Linux查看CPU信息方法(超简单)
  7. Boolean类型详解
  8. 用一个数组实现两个堆栈
  9. eolinker开源5.0版本 修改语言为中文
  10. 汽车车牌定位识别系统的设计实现