第二阶段团队和个人第四次冲刺

团队博客

整个项目预期的任务量:25h 已用9h

任务看板照片

 

 

 

团队照片

 

 

 

燃尽图

 

4.产品状态

解决了第一阶段产生的详细提取结果无法保存的信息。

个人博客

第一阶段产生的详细提取结果无法保存,今天解决详细结果保存的信息。

DROP TABLE IF EXISTS `v_resumtext`;

CREATE TABLE `v_resumtext` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `rid` int(11) DEFAULT NULL,

  `rtext` text,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;

@Insert("insert into v_resumtext values(null,#{rid},#{rtext})")
void addresumetext(@Param("rid") int rid,@Param("rtext") String rtext);
@Select("select rtext from v_resumtext where rid=#{rid} order by id desc limit 1")
String selectxiangxi(int rid);
@Delete("delete from v_resumtext where rid=#{rid}")
void delete_xiangxi(int rid);

  private static UserService userService = new UserService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 检测是否为多媒体上传
        System.out.println("1");
        System.out.println("seekerRegisterupload");
        if (!ServletFileUpload.isMultipartContent(request)) {
            // 如果不是则停止
            PrintWriter writer = response.getWriter();
            writer.println("Error: 表单必须包含 enctype=multipart/form-data");
            writer.flush();
            return;
        }
        System.out.println("1");
        // 构造临时路径来存储上传的文件
        // 这个路径相对当前应用的目录
        String uploadPath = getServletContext().getRealPath("/") + File.separator + "upload";
        // 如果目录不存在则创建
        File uploadDir = new File(uploadPath);
        if (!uploadDir.exists()) {
            uploadDir.mkdir();
        }
        //1、创建一个DiskFileItemFactory工厂
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //2、创建一个文件上传解析器
        ServletFileUpload upload = new ServletFileUpload(factory);
        //3、解决上传文件名的中文乱码
        upload.setHeaderEncoding("UTF-8");
        System.out.println("2");

        try {
            // 解析请求的内容提取文件数据
            @SuppressWarnings("unchecked")
            List<FileItem> fileItems = upload.parseRequest(request);

            System.out.println(fileItems);
            if (fileItems != null && fileItems.size() > 0) {
                for (FileItem item : fileItems) {
                    //如果fileitem中封装的不是普通输入项的数据
                    if (!item.isFormField()) {
                        //字段名称
                        System.out.println("2-2");
                        String fieldName = item.getFieldName(); //文件对应字段名称,就是input中name的值
                        //文件 XXX.doc
                        String fileName = item.getName();
                        //获取文件后缀名
                        String suffix = fileName.substring(fileName.lastIndexOf('.')); //.doc
                        //获取时间戳作为文件名
                        long id = new Date().getTime();

                        SimpleDateFormat formatter= new SimpleDateFormat("yyMMddHHmmss");
                        Date date = new Date(System.currentTimeMillis());
                        System.out.println(formatter.format(date));
                        String currentPath=System.getProperty("user.dir");
                        System.out.println(currentPath);
                        //构建文件路径
                        System.out.println(File.separator);
                        String fileUrl = currentPath+ "/" + formatter.format(date)  + suffix;
                        //新建文件
                        File file = new File(fileUrl);
                        System.out.println("3");

                        try {
                            //文件写入
                            item.write(file);
                            System.out.println("4");
                            getContext(request,response,fileUrl);

                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        /**
                         * 图片访问地址:
                         * http://XXX:8080/javaewb/img/id+suffix
                         */

                    } else {
                        //普通字段
                        String fieldName = item.getFieldName();
                        String value = item.getString("UTF-8");
                        System.out.println(fieldName + "->" + value);
                    }
                }
            }
        }catch (FileUploadException e) {
            e.printStackTrace();
        }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
    public static void getContext(HttpServletRequest request, HttpServletResponse response,String fileurl)throws ServletException, IOException{
        HttpSession session = request.getSession();
        User user = (User)session.getAttribute("user");
        request.setCharacterEncoding("utf-8");
        if(user==null){
            request.getRequestDispatcher("login.html").forward(request,response);
        }
//        ServletInputStream inputStream = request.getInputStream();
//        FileOutputStream fileOutputStream=new FileOutputStream("F://"+"qiao.pdf");
//        IOUtils.copy(inputStream,fileOutputStream);
//        fileOutputStream.close();
        Resume resume = new Resume();
        try {
            String s = PDFReader.readFile(fileurl);
            String[] all_splist = s.split("\\s+");
            for (int i = 0; i < all_splist.length; i++) {
                if(all_splist[i].contains("姓名"))
                {
                    resume.setName(all_splist[i+1]);
                }
                if(all_splist[i].contains("年龄"))
                {
                    resume.setAge(all_splist[i+1]);
                }
                if(all_splist[i].contains("学历"))
                {
                    resume.setStudy(all_splist[i+1]);

                }
                if(all_splist[i].contains("工作经验:"))
                {
                    resume.setYear(all_splist[i+1]);
                }
                if(all_splist[i].contains("学校"))
                {
                    resume.setSchool(all_splist[i+1]);
                }

            }
            resume.setRid(user.getUid());
            userService.delete_xiangxi(user.getUid());
            userService.deletebyid(user.getUid());
            userService.addresume(resume);
            userService.addresumetext(user.getUid(), s);

        } catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

 

posted @ 2023-05-18 20:03  樱花开到我身边  阅读(9)  评论(0)    收藏  举报