文件上传

来源:互联网 发布:网络pk游戏大全 编辑:程序博客网 时间:2024/06/11 03:27

1.使用common-file-io和common-file-upload组件上传

public class Upload extends HttpServlet {/** *  */private static final long serialVersionUID = -8002772854902469054L;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(req.getContextPath());if (ServletFileUpload.isMultipartContent(req)) {FileItemFactory factory=new DiskFileItemFactory();ServletFileUpload upload=new ServletFileUpload(factory);try {@SuppressWarnings("unchecked")List<FileItem>  items=upload.parseRequest(req);String savePath=req.getRealPath("upload");//String savePath=req.getContextPath()+File.separator+"upload"; System.out.println(savePath); Iterator<FileItem> it=items.iterator(); while(it.hasNext()){  FileItem item=it.next(); System.out.println("Item"+item.getName()); if (!item.isFormField()) { String fileName=item.getName(); System.out.println("f1"+fileName); if (fileName!=null&&fileName!="") {File file=new File(savePath,fileName);item.write(file);req.setAttribute("message", "上传成功");req.setAttribute("fileName", fileName);req.setAttribute("picPath", file.getAbsolutePath());System.out.println("上传成功");req.getRequestDispatcher("upload.jsp").forward(req, resp); }else{ req.setAttribute("message", "不能上传空文件"); resp.sendRedirect("upload.jsp"); }}  }     } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} }



2.使用ssm框架的springMVC框架上传

@RequestMapping(value = "/user/add", method = RequestMethod.POST)public String addUserSave(User user,HttpSession session,HttpServletRequest request,@RequestParam(value = "attachs", required = false) MultipartFile[] attachs) {String idPicPath = null;String workPicPath = null;String errorInfo = null;boolean flag = true;String path1=request.getServletContext().getRealPath("/statics/uploadfiles");for (int i = 0; i < attachs.length; i++) {      //attachs.length的长度是文件上传控件的个数,顺序为控件在文档中的顺序,与真正上传文件数量无关MultipartFile attach = attachs[i];if (!attach.isEmpty()) {if (i == 0) {errorInfo = "uploadFileError";} else if (i == 1) {errorInfo = "uploadWpError";}String oldFileName = attach.getOriginalFilename();// 获得原文件名的方法String prefix = FilenameUtils.getExtension(oldFileName);// 利用ssm框架提供的FilenameUtils工具的方法获取原文件后缀int filesize = 5000000;// 上传大小不得超过 5000kif (attach.getSize() > filesize) { //attach.getSize()方法是获取文件大小的方法request.setAttribute(errorInfo, " * 上传大小不得超过 5000k");flag = false;} else if (prefix.equalsIgnoreCase("jpg")|| prefix.equalsIgnoreCase("png")|| prefix.equalsIgnoreCase("jpeg")|| prefix.equalsIgnoreCase("pneg")) {// 上传图片格式不正确String fileName = System.currentTimeMillis()     //获得系统时间+ RandomUtils.nextInt(1000000) + "_Personal.jpg";//RandomUtils是ssm提供的工具类File targetFile = new File(path1, fileName);if (!targetFile.exists()) {targetFile.mkdirs();}// 保存try {attach.transferTo(targetFile);} catch (Exception e) {e.printStackTrace();request.setAttribute(errorInfo, " * 上传失败!");flag = false;}if (i == 0) {idPicPath = fileName;} else if (i == 1) {workPicPath =fileName;}} else {request.setAttribute(errorInfo, " * 上传图片格式不正确");flag = false;}}}if (flag) {user.setCreatedBy(((User) session.getAttribute(Constants.USER_SESSION)).getId());user.setCreationDate(new Date());user.setIdPicPath(idPicPath);user.setWorkPicPath(workPicPath);try {if (userBiz.addUser(user)) {return "redirect:/user/list";}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}return "useradd";}


原创粉丝点击