一个类+几个方法,写过一次的东西,就要记录下来,以后可以方便的使用!
//提交注册3 && 上传相关图片 public ActionForward reg_enterprise_3(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { UserInfo userinfo = (UserInfo)request.getSession().getAttribute("willRegUser"); int uid = this.getUserInfoService().insert(userinfo); String mark = StringUtils.getParameter(request, "mark", ""); if("jump_jiucool".equalsIgnoreCase(mark)){ ActionForward gotourl = new ActionForward(); gotourl.setPath("/reg_enterprise4.jsp); gotourl.setRedirect(true); return gotourl; } CookieUtils.setCookie(request, response, "umobile_jiucool", userinfo.getMsisdn(),60*60*24*30); CookieUtils.setCookie(request, response, "uemail_jiucool", userinfo.getEmail(),60*60*24*30); CookieUtils.setCookie(request, response, "uid_jiucool", String.valueOf(userinfo.getId()),60*60*24*30); request.getSession().setAttribute(Constants.USER_SESSION, new SessionUser(userinfo.getId())); String tempFilePath = Constants.PIC_UPLOAD_PATH + "enterprisePic/temp" + "/"; try { File file = new File(tempFilePath); if(!file.exists()){ file.mkdirs(); } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4*1024); factory.setRepository(new File(tempFilePath)); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(4*1024*1024); List items = upload.parseRequest(request); Iterator iter = items.iterator(); Integer type=0; while(iter.hasNext()){ FileItem item = (FileItem)iter.next(); String filename = item.getFieldName(); if(filename.equalsIgnoreCase("uploadface")){ type=1; }else if(filename.equalsIgnoreCase("uploadidcard")){ type=2; } if(!item.isFormField()){ this.processUploadedFile(item, userinfo, type); } } Boolean flag = true; File dirFile = new File(tempFilePath); File[] files = dirFile.listFiles(); for(int i=0;i<files.length;i++){ //删除子文件 if(files[i].isFile()){ flag = deleteFile(files[i].getAbsolutePath()); if(!flag){ break; } } //删除子目录 else{ flag = deleteDirectory(files[i].getAbsolutePath()); if(!flag){ break; } } } }catch(Exception e){ throw new ServletException(e); } ActionForward gotourl = new ActionForward(); gotourl.setPath("/reg_enterprise4.jsp?uid=" + userinfo.getId()); gotourl.setRedirect(true); return gotourl; } private void processUploadedFile(FileItem item,UserInfo userinfo,Integer type) throws Exception{ String filename = item.getName(); int index=filename.lastIndexOf("\\"); filename = filename.substring(index+1, filename.length()); long fileSize = item.getSize(); if(filename.equals("") && fileSize ==0)return; String suffixName = item.getName().substring( item.getName().lastIndexOf(".")); if(".png".equalsIgnoreCase(suffixName) || ".jpg".equalsIgnoreCase(suffixName) || ".gif".equalsIgnoreCase(suffixName) || ".jpeg".equalsIgnoreCase(suffixName)){ // 数据库存入路径 filename = System.currentTimeMillis() + suffixName; String adFileName =""; if(type==1){ adFileName = StringUtils.replaceChar(userinfo.getId()*11,"-") + "/" + DateUtils.format("yyyMMdd", new Date()) + "/"; FileUtils.saveFileStream(item.getInputStream(),Constants.FACE_UPLOAD_PATH , adFileName + filename); userinfo.setFace("/" + adFileName + filename); this.getUserInfoService().update(userinfo); }else if(type==2){ adFileName = "enterprisePic/" + "idcard" + "/" + DateUtils.format("yyyMMdd", new Date()) + "/"; userinfo.setComidcard(adFileName + filename); }else if(type==3){ adFileName = "enterprisePic/" + "comlicense" + "/" + DateUtils.format("yyyMMdd", new Date()) + "/"; userinfo.setComlicense(adFileName + filename); } if(type>1){ this.getUserInfoService().update(userinfo); FileUtils.saveFileStream(item.getInputStream(),Constants.PIC_UPLOAD_PATH,adFileName + filename); } } } /** * 删除单个文件 * @param fileName 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String fileName){ File file = new File(fileName); if(file.isFile() && file.exists()){ file.delete(); return true; }else{ return false; } } /** * 删除目录(文件夹)以及目录下的文件 * @param dir 被删除目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String dir){ //如果dir不以文件分隔符结尾,自动添加文件分隔符 if(!dir.endsWith(File.separator)){ dir = dir+File.separator; } File dirFile = new File(dir); //如果dir对应的文件不存在,或者不是一个目录,则退出 if(!dirFile.exists() || !dirFile.isDirectory()){ System.out.println("删除目录失败"+dir+"目录不存在!"); return false; } boolean flag = true; //删除文件夹下的所有文件(包括子目录) File[] files = dirFile.listFiles(); for(int i=0;i<files.length;i++){ //删除子文件 if(files[i].isFile()){ flag = deleteFile(files[i].getAbsolutePath()); if(!flag){ break; } } //删除子目录 else{ flag = deleteDirectory(files[i].getAbsolutePath()); if(!flag){ break; } } } if(!flag){ System.out.println("删除目录失败"); return false; } //删除当前目录 if(dirFile.delete()){ System.out.println("删除目录"+dir+"成功!"); return true; }else{ System.out.println("删除目录"+dir+"失败!"); return false; } }
跟着沙发晕
[Reply]
久酷
Reply:
August 14th, 2010 at 19:57
@zwwooooo, 可以跳过,
HOHO
[Reply]
好多代码。。。晕了
[Reply]