@RequestMapping(value = "/upload", method = RequestMethod.POST)public void upload(@RequestParamMultipartFile file,@RequestParam(required=false) Integer importFlag, HttpServletRequest request, HttpServletResponse response)throws IOException {// 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解// 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解// 并且上传多个文件时,前台表单中的所有<input// type="file"/>的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件int flag = 0;String json;if (file.isEmpty()) {System.out.println("文件未上传");} else {// 如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中String realPath = request.getSession().getServletContext().getRealPath("/upload");// 这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的File xlsFile = new File(realPath, file.getOriginalFilename());FileUtils.copyInputStreamToFile(file.getInputStream(), xlsFile);HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(xlsFile));HSSFSheet sheet = workbook.getSheetAt(0);List<Salary> salaryList = new ArrayList<Salary>();Salary salary = null;HSSFRow row = null;for (int i = 2; i < sheet.getLastRowNum() + 1; i++) {row = sheet.getRow(i);salary = new Salary();//部门编号salary.setDeptCode(getCellValue(row.getCell(0)));//部门名salary.setDeptName(getCellValue(row.getCell(1)));//工号salary.setStaffCode(getCellValue(row.getCell(2)));//姓名salary.setRealName(getCellValue(row.getCell(3)));//岗资salary.setPostWage(getCellValue(row.getCell(4)));//薪资salary.setPay(getCellValue(row.getCell(5)));//绩效salary.setMeritPay(getCellValue(row.getCell(6)));// 岗位津贴salary.setTask(getCellValue(row.getCell(7)));
//                保留贴salary.setResponsibility(getCellValue(row.getCell(8)));//课酬salary.setKeep(getCellValue(row.getCell(9)));//其他salary.setNet(getCellValue(row.getCell(10)));//补公积salary.setProvident(getCellValue(row.getCell(11)));
//                岗补salary.setBack(getCellValue(row.getCell(12)));
//                课补salary.setBack2(getCellValue(row.getCell(13)));//临补salary.setTemporyBack(getCellValue(row.getCell(14)));//应发额salary.setWages(getCellValue(row.getCell(15)));
//                    工会salary.setLabour(getCellValue(row.getCell(16)));//失业保险salary.setUnemployed(getCellValue(row.getCell(17)));
//                医疗保险salary.setMedical(getCellValue(row.getCell(18)));
//                扣公积salary.setDeductionProvident(getCellValue(row.getCell(19)));
//                扣一salary.setDeductionOne(getCellValue(row.getCell(20)));//  扣salary.setReserved(getCellValue(row.getCell(21)));
//                    养老保险salary.setPension(getCellValue(row.getCell(22)));//税所得salary.setAfterTaxIncome(getCellValue(row.getCell(23)));
//                    所得税salary.setIncomeTax(getCellValue(row.getCell(24)));//Totaldeductiosalary.setTotaldeduction(getCellValue(row.getCell(25)));//实发额salary.setHomepay(getCellValue(row.getCell(26)));salary.setYear(getCellValue(row.getCell(27)));salary.setMonth(getCellValue(row.getCell(28)));salary.setNote(getCellValue(row.getCell(29)));salaryList.add(salary);}if (salaryList.size() > 0) {flag = salaryService.insert(salaryList,importFlag);if (flag > 0) {xlsFile.delete();}}}if (flag > 0) {json = "{\"success\":\"true\",\"msg\":\"导入成功!\"}";} else {json = "{\"success\":\"false\"}";}response.setContentType("text/html;charset=utf-8");try {response.getWriter().write(json);response.getWriter().flush();response.getWriter().close();} catch (IOException e) {e.printStackTrace();}}

springmvc多文件上传相关推荐

  1. 【SSM框架系列】SpringMVC的文件上传、拦截器及异常处理

    SpringMVC的文件上传 服务器端实现文件上传的技术有很多种,Servlet3.0,FileUtils,框架等等,都可以实现文件上传,不管使用哪一种上传技术,都必须满足三要素: 表单项type=& ...

  2. struts2和springmvc实现文件上传

    struts2 struts有专门的文件上传功能,struts的Action已经脱离了servlet容器的范围,所以servlet中的smartupload不是很方便使用,甚至初始化servletCl ...

  3. SpringMVC学习--文件上传

    简介 文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发. springmvc中对多部件类型解析 在 页面form中提交enctype="m ...

  4. SpringMVC+uploadify文件上传

    前言 准备筹划一个自己的个人网站,初步的架构设计采用SSH(Spring-MVC,Spring,Hibernate),在这里 顺便记录一下设计和开发过程,以备参考.后续会陆续更新文档,如有任何问题,欢 ...

  5. springmvc图片文件上传接口

    springmvc图片文件上传 用MultipartFile文件方式传输 Controller package com.controller;import java.awt.image.Buffere ...

  6. SpringMVC实现文件上传

    1.文件上传之上传原理分析和搭建环境 springmvc文件上传也会用到Javaweb实现文件上传的组件. 1.1文件上传的必要条件 A .form 表单的 enctype 取值必须是:multipa ...

  7. springMVC的文件上传于下载

    springMVC的文件上传于下载 1.springmvc 文件的上传也是借助于两个工具所以需要添加两个jarapache-commons-fileupload.jarapache-commons-i ...

  8. java day62【 响应数据和结果视图 、 SpringMVC 实现文件上传 、 SpringMVC 中的异常处理 、 SpringMVC 中的拦截器 】...

    第1章 响应数据和结果视图 1.1返回值分类 1.1.1 字符串 1.1.2 void 1.1.3 ModelAndView 1.2转发和重定向 1.2.1 forward 转发 1.2.2 Redi ...

  9. SpringMVC之文件上传和文件下载

    1. 文件上传 在web开发中一般会有文件上传的操作 一般JavaWeb开发中文件上传使用的 Apache组织的Commons FileUpload组件 SpringMVC中使用  Multipart ...

  10. SpringMVC的文件上传和拦截器

    目录 一.文件上传 1.概述 2.案例1 3.案例2 二.拦截器 1.HandlerInterceptor接口 2.案例:拦截器实现用户权限验证 一.文件上传 1.概述 SpringMVC会将上传文件 ...

最新文章

  1. Java截取最后一个/后面的所有字符
  2. 域服务器可以修改ip,Windows Server 2016 域控制器修改IP
  3. Redis 6.0 如何实现大幅度的性能提升?
  4. 笨办法学 Python · 续 第三部分:数据结构
  5. 如何添加二级标题_怎样给Word文档添加目录?
  6. js创建对象的几种常用方式小结(推荐)
  7. sed 和 awk 正则表达式
  8. Go程序设计语言 第1章 入门
  9. [haoi2009]毛毛虫 树形dp
  10. 给你的公众号添加一个智能机器人
  11. New Phyto | 沈其荣团队李荣等解析生物有机肥培育抑病土壤的根际菌群抵御病原菌入侵的机制...
  12. 站内搜索引擎(ASP.NET)
  13. 如何上色?怎样才能配出好看的颜色?
  14. Oracle 容灾方案选择
  15. PC微信机器人之实战分析通过wxid获取用户信息
  16. 对于光本身,光走一光年的距离需要多久?————狭义相对论-钟慢效应(时间膨胀)
  17. 王者荣耀服务器什么时候维护结束,王者荣耀维护更新到几点 王者荣耀今天维护多久 新赛季几点维护完?...
  18. 微信订阅号“头条化”,内容创业要重新洗牌?
  19. autojs查找图片相似轮廓
  20. win7 关机速度比较快

热门文章

  1. html5表单提交json数据库,使用html5的FormData对象,通过 Ajax表单异步提交文件数据...
  2. aix 查看防火墙状态_aix防火墙怎么样设置
  3. android 钢琴识别音阶对错_钢琴为什么会成为“乐器之王”
  4. redis thinkphp mysql_Thinkphp5怎么扩展Redis数据库,实现Redis的CURD操作
  5. 三星s20计算机怎么添加到桌面,三星s20+怎么分屏?三星s20系列多窗口分屏设置操作步骤...
  6. 数组占位符_Java基础 方法和数组
  7. yolo和mrcnn目标检测
  8. VB 判断是否文本文件
  9. 别让算法和数据结构拖你职业生涯的后腿
  10. 雷军100亿押注IoT,小米借AI两翼齐飞