Spring mvc 多文件上传 controller+freemarker +js(随时拿来用)

controller:
//批量导入 法源信息(多文件上传)
  @RequestMapping(value = "/addlot")
    public String addlot(@RequestParam MultipartFile[] myfiles,
            HttpServletRequest request, HttpSession httpSession,
            RedirectAttributesModelMap model) throws IOException {
        List list = new ArrayList();
        String parentId = (String) httpSession.getAttribute(SESSION_LAW02_PARENTID);
        int ok = 0;
        int no = 0;
        int total = 0;
        // 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
        // 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
        // 并且上传多个文件时,前台表单中的所有的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件
        for (MultipartFile myfile : myfiles) {
            YellowpagesitemDO yellowpagesitemDO = new YellowpagesitemDO();
            boolean flag = false;
          
            if (myfile.isEmpty()) {
                System.out.println("文件未上传");
            } else {
                total = total + 1;
                String filename = myfile.getOriginalFilename();
                if ((filename != null) && (filename.length() > 0)) {
                    // 查找字符‘.‘出现的最后一个索引位置
                    int x = filename.lastIndexOf('.');
                    // 判断此索引是否存在,并且不是最后一个字符
                    if ((x > -1) && (x < filename.length() - 1)) {
                        if (filename.substring(x + 1).equals("html")
                                || filename.substring(x + 1).equals("htm")) {// 调用subString方法从索引位开始截取到最后,并且不截取字符'.'
                            flag = true;

                        }
                        ;

                    }
                }
                if (flag) {
                  
                    String path3 = request.getSession().getServletContext().getRealPath("")+ "\\views\\law02\\" + parentId;
                 
                    File targetFile = new File(path3,myfile.getOriginalFilename());
                    if (!targetFile.exists()) {
                        targetFile.mkdirs();
                    }

                    try {
                        myfile.transferTo(targetFile);
                        yellowpagesitemDO.setName(myfile.getOriginalFilename());
                        yellowpagesitemDO.setValue("添加成功!");
                        list.add(yellowpagesitemDO);
                        ok = ok + 1;
                        String content=path3+"\\"+myfile.getOriginalFilename();
                        LawDO llDo=law01Service.getlaw(content);
                        if(llDo!=null){
                            
                        }else {
                            LawDO  lawDO =new  LawDO();
                            lawDO.setContent(content);
                            lawDO.setDelFlag(0);
                            law01Service.insertLaw(lawDO);
                        }
                        
                    }catch(Exception e){
                        //e.printStackTrace();
                    }
                } else {
                    no = no + 1;
                    yellowpagesitemDO.setName(myfile.getOriginalFilename());
                    yellowpagesitemDO.setValue("格式错误,导入失败!");
                    list.add(yellowpagesitemDO);
                }
            }
        }
        model.addAttribute("id", parentId);
        model.addFlashAttribute("total", total);
        model.addFlashAttribute("no", no);
        model.addFlashAttribute("ok", ok);
        model.addFlashAttribute("mess", list);
        return "redirect:/law02/show";
    }
Freemarker:

批量导入 :




批量导入信息反馈 :


<#if total??>

共计导入 : ${total!}条,   成功 :${ok!}条,  失败 :${no!}条


<#list mess! as x>
导入内容 导入状态
${x.name!} ${x.value!}
$('#lotsub').click(function() {
        
         var files = $('#files').val();
        if(files =="" ){
            alert("请添加文件");
            return false ;
        }
        else{
            $('form').submit();
        }
    });
    


    function  addUploadButton(){ 
        
         //  按ID找到FOrm
         var  uploadForm = document.getElementById( "uploadForm" );    
        
         //  创建P元素
         var  pNode = document.createElement( "p" );
        
         //  累加Count以观察次数
        
        pNode.innerHTML = "  " ;
        
         //  将P元素添加到body中
        uploadForm.appendChild(pNode);
    }



你可能感兴趣的:(工作中的笔记心得)