第二阶段冲刺四
今天主要完成的任务:学习上传文件原理和解析改文件
遇到的困难:视频讲解的挺好的,无问题
解决办法:暂无
源程序代码实例
private boolean testFile(HttpServletRequest request) { boolean flag=false; Note note=new Note(); Map<String, String> fileMap=new HashMap<String, String>(); String title=request.getParameter("title"); String see=request.getParameter("see"); String kemu=request.getParameter("kemu"); String userID=request.getParameter("userID"); int userId=Integer.valueOf(userID); System.out.println("标题:"+title); System.out.println("是否公开:"+see); System.out.println("科目:"+kemu); System.out.println("用户ID:"+userId); note.setTitle(title); note.setCourse(kemu); note.setPermission(see); DiskFileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload sfu=new ServletFileUpload(factory); sfu.setFileSizeMax(30*1024*1024); List<FileItem> list=null; String path="/usr/local/CloudNote/"; String path1=""; Date t = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); String date=df.format(t); String date_sql=df2.format(t); note.setDate(date_sql); try { list = sfu.parseRequest(request); } catch (FileUploadException e1) { // TODO Auto-generated catch block e1.printStackTrace(); return false; } for(FileItem fileItem:list) { if(fileItem.isFormField()) { String filename=fileItem.getFieldName(); String value=null; try { value = fileItem.getString("utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } if(filename.equals("username")) { path=path+value; path1=path1+value; File file=new File(path); if(!file.exists()) { file.mkdir(); } path=path+"/"+date; path1=path1+"/"+date; File file2=new File(path); if(!file2.exists()) { file2.mkdir(); } } System.out.println(filename+"="+value); } else { long size = fileItem.getSize(); //判断size是否为0 if(size==0){ continue; } //获取文件的类型 String contentType = fileItem.getContentType(); //获取文件的名字 String name = fileItem.getName(); String key=name; String prefix = UUID.randomUUID().toString().replace("-", ""); name = prefix+"_"+name; if(contentType.equals("text/plain")) { fileMap.put("txt_path",path1+"/"+name); } else { int a=1; if(key.equals("image1.png")) { a=1; } else if(key.equals("image2.png")) { a=2; } else { a=3; } fileMap.put("image"+a+"_path",path1+"/"+name); } //获取表单项的属性名 String fieldName = fileItem.getFieldName(); System.out.println("文件的大小: "+size); System.out.println("文件的类型: "+contentType); System.out.println("文件的名字: "+name); System.out.println("表单项name属性名: "+fieldName); //将文件写入到磁盘中 try { fileItem.write(new File(path+"/"+name)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } note.setFileMap(fileMap); try { userService=UserService.getUserService(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); flag=false; } flag=userService.addNote(note,userId); return flag; }