使用fileupload组件完成文件上传

    xiaoxiao2022-07-07  172

    // 使用fileupload组件完成文件上传 // 上传的位置 String path = request.getSession().getServletContext().getRealPath("/uploads/"); // 判断,该路径是否存在 File file = new File(path); if(!file.exists()){ // 创建该文件夹 file.mkdirs(); } // 解析request对象,获取上传文件项 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); // 解析request List<FileItem> items = upload.parseRequest(request); // 遍历 for(FileItem item:items){ // 进行判断,当前item对象是否是上传文件项 if(item.isFormField()){ // 说明普通表单向 }else{ // 说明上传文件项 // 获取上传文件的名称 String filename = item.getName(); // 把文件的名称设置唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid+"_"+filename; // 完成文件上传 item.write(new File(path,filename)); // 删除临时文件 item.delete(); } } return "success"; }

    另一种写法:

    FileItemFactory factory=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(factory); List<FileItem> items=null; try { items=upload.parseRequest(request); } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } Iterator<FileItem> itr=items.iterator(); HttpSession session=request.getSession(); User user=(User)session.getAttribute("currentUser"); boolean imageChange=false; while(itr.hasNext()){ FileItem item=(FileItem)itr.next(); if(item.isFormField()){ String fieldName=item.getFieldName(); if("nickName".equals(fieldName)){ user.setNickName(item.getString("utf-8")); } if("mood".equals(fieldName)){ user.setMood(item.getString("utf-8")); } }else if(!"".equals(item.getName())){ try{ imageChange=true; String imageName=DateUtil.getCurrentDateStr(); user.setImageName(imageName+"."+item.getName().split("\\.")[1]); // String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1]; String filePath=request.getServletContext().getRealPath("userImages")+"\\"+imageName+"."+item.getName().split("\\.")[1]; System.out.println(filePath); item.write(new File(filePath)); }catch(Exception e){ e.printStackTrace(); } }
    最新回复(0)