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

团队博客

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

任务看板照片

 

 

 

团队照片

 

 

 

燃尽图

 

4.产品状态、

解决了文件内容覆盖的问题

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);

        }

 

    }

个人博客

后台文件接收存在着问题,新上传的文件会覆盖原来的文件,调整过后采用时间戳,文件名不重复,不会覆盖。

  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-16 20:23  樱花开到我身边  阅读(15)  评论(0)    收藏  举报