@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void upload(@RequestParam
MultipartFile 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)));
//Totaldeductio
salary.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. springmvc图片文件上传接口

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

  2. SpringMVC学习--文件上传

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

  3. Spring +SpringMVC 实现文件上传功能。。。

    要实现Spring +SpringMVC  实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ...

  4. SpringMVC之文件上传异常处理

    一般情况下,对上传的文件会进行大小的限制.如果超过指定大小时会抛出异常,一般会对异常进行捕获并友好的显示出来.以下用SpringMVC之文件上传进行完善. 首先配置CommonsMultipartRe ...

  5. springmvc实现文件上传

    springmvc实现文件上传 多数文件上传都是通过表单形式提交给后台服务器的,因此,要实现文件上传功能,就需要提供一个文件上传的表单,而该表单就要满足以下3个条件 (1)form表彰的method属 ...

  6. 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决

    本文转载自:https://blog.csdn.net/lzgs_4/article/details/50465617 使用SpringMVC实现文件上传时,后台使用了 MultipartFile类, ...

  7. 关于SpringMVC的文件上传

    关于文件的上传,之前写过2篇文章,基于Struts2框架,下面给出文章链接: <关于Struts2的文件上传>:http://www.cnblogs.com/lichenwei/p/392 ...

  8. 一起学SpringMVC之文件上传

    概述 在Web系统开发过程中,文件上传是普遍的功能,本文主要以一个简单的小例子,讲解SpringMVC中文件上传的使用方法,仅供学习分享使用,如有不足之处,还请指正. 文件上传依赖包 如下所示,文件上 ...

  9. SpringMVC+ajax文件上传实例教程

    原文地址:https://blog.csdn.net/weixin_41092717/article/details/81080152 文件上传文件上传是项目开发中最常见的功能.为了能上传文件,必须将 ...

  10. 6.学习springmvc的文件上传

    一.文件上传前提与原理分析 1.文件上传必要前提: 2.文件上传原理分析: 3.需要引入的jar包: 二.传统方式文件上传程序 1.pom.xml <dependency> <gro ...

随机推荐

  1. 即将翻译 Building The New Financial Times Web App

    <金融时报>这份Web APP 经验的总结,写得非常详细,也提到Web APP制作中常遇到的问题.为么他们就没有点透Bug - -! Building The New Financial ...

  2. padding/margin/border 理解

  3. 关于css3的动画总结

    旋转:transform:rotate(xxdeg)扭曲:transform:skey(x,y)缩放:transform:scale(x,y)变形位移:transform:translate(x,y) ...

  4. Android工程文件下assets文件夹与res文件夹的区别

    1.assets:不会在R.java文件下生成相应的标记,assets文件夹可以自己创建文件夹,必须使用AssetsManager类进行访问,存放到这里的资源在运行打包的时候都会打入程序安装包中, 2 ...

  5. android 弹出的软键盘遮挡住EditText文本框的解决方案

    1.android 弹出的软键盘遮挡住EditText文本框的解决方案: 把Activit对应的布局文件filename.xml文件里的控件用比重设置布局.(例如:android:layout_wei ...

  6. leetcode 215. Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  7. ZJOI2014 2048

    Description 提交答案题,写个2048 AI 告诉你随机数生成方式. Sol xjblg+A*. 首先我写了个模拟,2048. 然后自己YY就可以啦...各种乱搞... 因为随机数,一个最好 ...

  8. 8 延时队列相关类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  9. 3.5---用栈实现队列(CC150)

    手写时候,别忘记import java.util.Stack; import java.util.Stack; class MyQueue { Stack<Integer> s1 = ne ...

  10. python 的dict的update 方法的一点诡秘的行为

    如下: >>> 'a%s'%a 'a{1: 0, 2: 0}' >>> for k,v in a.items(): a.update(k=v) >>&g ...