• springmvc多文件上传


     @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();
            }
    
        }
  • 相关阅读:
    错误:严重: Servlet.service() for servlet [appServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is
    转 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
    【转】C++和Java比较
    org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'xxxx' is not present
    Leetcode 423. Reconstruct Original Digits from English
    Maven中打包scope为system的Jar包
    Oracle常用函数和注意事项
    Vue中组件之间数据通信
    Vue中data数据响应问题
    JAVA爬虫对font-face字体反爬虫解密
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5395196.html
Copyright © 2020-2023  润新知