第二阶段团队和个人第四次冲刺
团队博客
整个项目预期的任务量: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);
}
}