web开发excel文件上传及解析(上)
前言
在web开发的时候,我们经常有遇到文件的上传以及解析的需求,比如我们将excel文件上传并且解析,最后将解析的excel的内容插入到数据库中,今天就实践一下文件的上传以及excel的解析,这篇博客主要是实践文件上传功能,对应的excel文件的解析,将在下一篇博客实践。
准备工作:
本文上传文件使用了apche下面的commons-fileupload.jar、commons-io.jar
如果是maven项目,则需要在pom.xml配置如下依赖
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons.fileupload.version}</version>
</dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.2</version>
</dependency>
如果不是maven项目则下载jar包的,然后导入到项目中,下载地址如下:
链接:https://pan.baidu.com/s/12FHorV5ImIn4aiCqFcBUkg 密码:yxgj
功能实现:
用上述两个jar包实现上传的功能比较简单,这里就直接上传代码
前端代码:主要就是一个表单
<form name="frm_test" action="${pageContext.request.contextPath }/uploadExcelFile" method="post" enctype="multipart/form-data">用户名:<input type="text" name="userName"> <br/>文件: <input type="file" name="file"> <br/><input name="upload" type="submit" value="上传">
</form>
注意事项,一定要将enctype="multipart/form-data",另外就是<input type="file" name="file">
其他没什么注意的地方,记得接口不要写错了
后台代码:
@RequestMapping(value="/uploadExcelFile",method=RequestMethod.POST,produces = "text/html;charset=UTF-8")@ResponseBodypublic String uploadExcelFile(@RequestParam("file") CommonsMultipartFile file,HttpServletRequest request) {try {String path = request.getSession().getServletContext().getRealPath("/");String fileName = "display.xlsx";File excelFile = new File(path+fileName);LOGGER.info("uploadExcelFile file = "+excelFile.toString());if(excelFile.exists()) {excelFile.delete();}file.transferTo(excelFile);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return "fail";}return "success";}
这里有个小的地方需要注意@RequestParam("file")这个里面的file和前端的 <input type="file" name="file">中的name=“file”要一致。
这部分代码是简单的功能实现,并不是特别符合springmvc的设计,因为良好的mvc的设计controller层是不能写太多的逻辑,业务逻辑应当写道model层去的。另外返回的话也只是简单的返回success和fail。除了上面的代码,还需要在配置文件applicationContext.xml中配置一个关键的bean,不然上传的时候会报错。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"p:maxUploadSize="5242880"p:maxInMemorySize="4096"p:defaultEncoding="UTF-8"></bean>
这里有个注意的地方就是bean的id必须设置为“multipartResolver”,不然同样会报错的。
好了,按照上面的操作,基本上是可以实现文件上传的功能,下面看运行的效果吧
前端展示:
我这边是上传到了tomcat中对应的该项目中,上传之后的该项目的根目录
这里仅仅是实战了一把文件上传的功能,接下来看看如何实现excel的文件解析,excel文件解析
web开发excel文件上传及解析(上)相关推荐
- web文件上传(一)--文件上传与json上传区别及方法
Web文件上传方法总结大全 上传文件与与上传数据区别 上传数据主要指json等简单字符串,上传文件指的是上传word.excel图片等.在上传数据的时候enctype默认为第一个application ...
- x-data-spreadsheet 在线编辑excel文件,支持导入/导出/上传/读取网络 excel,合并单元格(vue版本)
1. 环境 vue:2.6.10 x-data-spreadsheet:1.1.8 less:4.0.0 less-loader:7.1.0 xlsx:0.15.1 axios:0.18.1 2. 优 ...
- php对接百度网盘开发平台API开发高级实战案例解析:(环境部署、php封装类、Access Token获取、预上传、分片上传)
文章目录 前言 一.环境部署 1.封装BdPan类库 2.回调地址配置 二.获取授权码Code 1.手动获取Code 2.生成本地token 3.读取AccessToken凭证 4.爬虫函数 二.简化 ...
- springboot 上传文件解析入库_springboot实现文件上传步骤解析
这篇文章主要介绍了springboot实现文件上传步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一步编写上传的前段页面 data-tar ...
- 文件上传漏洞-解析、验证、伪造1
文章目录 文件上传漏洞: webshell: 文件上传漏洞的原因: 文件上传常见检测: 靶场实战 1.前端验证绕过 2.Content-Type方式绕过 3.黑名单绕过 4. .htaccess文件绕 ...
- 文件上传漏洞-解析、验证、伪造2
我们接着上一篇博客文章对upload_labs上传漏洞的讲解: 文章目录 %00截断绕过 %00截断绕过(二) 图片马绕过 getimagesize图片类型绕过 php_exif模块图片类型绕过 二次 ...
- shp文件纯前端的上传、解析、编辑、下载
本文主要讲述一种体量较小的shp文件纯前端的上传.解析.编辑.下载的技术流程,适用于要素量少的shp文件修改操作. 准备工作 下载一下几个包,详细用法请见结尾参考. npm install file- ...
- excel文件导出并上传到服务器上
(个人业务,将需要导出的数据,写到excel文件中并上传到相对应的服务器上) ```java//excel标题String[] title = {"用户名(非必填)", " ...
- antd upload手动上传_SpringBoot 如何上传大文件?
最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- JS任意截图并上传图片,上传视频、上传文件
** JS截图上传图片 ** 在前端WEB开放过程中,经常使用上传图片.上传视频.上传音频以及上传其他文件等,通常都使用到各种上传插件,但是很多插件只是单纯的上传文件,不具备图片截图,即使有也很传统, ...
最新文章
- 阿里大佬告诉我,想学习设计模式,得先学好这些硬核技能
- win7 命令行设置DNS,建立集测环境
- openshift s2i_对Openshift上的Play Framework 2应用进行故障排除
- cp -r 和 cp -R 的区别
- 配置Voice vlan
- Django 使用第三方服务发送电子邮件
- Beginning Python chapter 1 Instant Hacking The Basics 2: Comments Strings
- SoapUI使用教程
- java Deque 接口
- 各品牌硬盘型号说明及希捷Seagate固件门的硬盘型号
- 【GTK】【C】GTK学习教程
- 辛东方重组百花园传媒 人员大调整
- java腰间盘终结者_大枣加大葱竟是腰椎间盘突出的终结者,一用一个好,腰不好不要错过...
- linux extended格式,Linux 下文件Non-ISO extended-ASCII编码问题
- ObiFruid创建流体,ObiFruid学习笔记
- 分布式与集群的区别到底是什么?
- iconfont与雪碧图的优缺点
- 车载wince升级改造_想在低配车内蹦迪?改造车机还不如装个接收器,也就一顿饭钱...
- 山东大学软件学院数据结构复习题目
- 带一张阿拉旅游卡,随时出发
热门文章
- 触控屏c语言程序,触摸屏编程软件 C-more Micro Programming Software V3.0
- WinForm(二) WinForm进阶与复杂控件使用
- Winform程序在VS中打包成安装程序(带卸载)
- SSH key的生成及使用
- Delphi XE11APP编译出错
- delphi xe5 android,android – 发送电子邮件Delphi XE5
- 微信小程序后端Java接口开发
- 如何写出高质量的代码 -- 给所有编程学习者的一个建议
- C语言数据结构——串的定义及抽象数据类型
- oracle的odbc源配置文件,odbc数据源配置oracle odbc driver configuration教程