前言

在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文件上传及解析(上)相关推荐

  1. web文件上传(一)--文件上传与json上传区别及方法

    Web文件上传方法总结大全 上传文件与与上传数据区别 上传数据主要指json等简单字符串,上传文件指的是上传word.excel图片等.在上传数据的时候enctype默认为第一个application ...

  2. 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. 优 ...

  3. php对接百度网盘开发平台API开发高级实战案例解析:(环境部署、php封装类、Access Token获取、预上传、分片上传)

    文章目录 前言 一.环境部署 1.封装BdPan类库 2.回调地址配置 二.获取授权码Code 1.手动获取Code 2.生成本地token 3.读取AccessToken凭证 4.爬虫函数 二.简化 ...

  4. springboot 上传文件解析入库_springboot实现文件上传步骤解析

    这篇文章主要介绍了springboot实现文件上传步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一步编写上传的前段页面 data-tar ...

  5. 文件上传漏洞-解析、验证、伪造1

    文章目录 文件上传漏洞: webshell: 文件上传漏洞的原因: 文件上传常见检测: 靶场实战 1.前端验证绕过 2.Content-Type方式绕过 3.黑名单绕过 4. .htaccess文件绕 ...

  6. 文件上传漏洞-解析、验证、伪造2

    我们接着上一篇博客文章对upload_labs上传漏洞的讲解: 文章目录 %00截断绕过 %00截断绕过(二) 图片马绕过 getimagesize图片类型绕过 php_exif模块图片类型绕过 二次 ...

  7. shp文件纯前端的上传、解析、编辑、下载

    本文主要讲述一种体量较小的shp文件纯前端的上传.解析.编辑.下载的技术流程,适用于要素量少的shp文件修改操作. 准备工作 下载一下几个包,详细用法请见结尾参考. npm install file- ...

  8. excel文件导出并上传到服务器上

    (个人业务,将需要导出的数据,写到excel文件中并上传到相对应的服务器上) ```java//excel标题String[] title = {"用户名(非必填)", " ...

  9. antd upload手动上传_SpringBoot 如何上传大文件?

    最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  10. JS任意截图并上传图片,上传视频、上传文件

    ** JS截图上传图片 ** 在前端WEB开放过程中,经常使用上传图片.上传视频.上传音频以及上传其他文件等,通常都使用到各种上传插件,但是很多插件只是单纯的上传文件,不具备图片截图,即使有也很传统, ...

最新文章

  1. 阿里大佬告诉我,想学习设计模式,得先学好这些硬核技能
  2. win7 命令行设置DNS,建立集测环境
  3. openshift s2i_对Openshift上的Play Framework 2应用进行故障排除
  4. cp -r 和 cp -R 的区别
  5. 配置Voice vlan
  6. Django 使用第三方服务发送电子邮件
  7. Beginning Python chapter 1 Instant Hacking The Basics 2: Comments Strings
  8. SoapUI使用教程
  9. java Deque 接口
  10. 各品牌硬盘型号说明及希捷Seagate固件门的硬盘型号
  11. 【GTK】【C】GTK学习教程
  12. 辛东方重组百花园传媒 人员大调整
  13. java腰间盘终结者_大枣加大葱竟是腰椎间盘突出的终结者,一用一个好,腰不好不要错过...
  14. linux extended格式,Linux 下文件Non-ISO extended-ASCII编码问题
  15. ObiFruid创建流体,ObiFruid学习笔记
  16. 分布式与集群的区别到底是什么?
  17. iconfont与雪碧图的优缺点
  18. 车载wince升级改造_想在低配车内蹦迪?改造车机还不如装个接收器,也就一顿饭钱...
  19. 山东大学软件学院数据结构复习题目
  20. 带一张阿拉旅游卡,随时出发

热门文章

  1. 触控屏c语言程序,触摸屏编程软件 C-more Micro Programming Software V3.0
  2. WinForm(二) WinForm进阶与复杂控件使用
  3. Winform程序在VS中打包成安装程序(带卸载)
  4. SSH key的生成及使用
  5. Delphi XE11APP编译出错
  6. delphi xe5 android,android – 发送电子邮件Delphi XE5
  7. 微信小程序后端Java接口开发
  8. 如何写出高质量的代码 -- 给所有编程学习者的一个建议
  9. C语言数据结构——串的定义及抽象数据类型
  10. oracle的odbc源配置文件,odbc数据源配置oracle odbc driver configuration教程