/** * Parse the request and store it as a request attribute. */ private MultipartForm parseRequest(HttpServletRequest request) throws IOException, ServletException { MultipartForm form = new MultipartForm(); ServletFileUpload upload = newServletFileUpload(); final List fileItems; try { fileItems = upload.parseRequest(request); } catch (FileUploadException e) { throw new ServletException("Could not upload files:" + e.getMessage(), e); } for (Iterator fileItemIterator = fileItems.iterator(); fileItemIterator.hasNext(); ) { FileItem item = (FileItem) fileItemIterator.next(); if (item.isFormField()) { addField(request, item, form); } else { addFile(item, form); } } // clean up files created by commons-upload which are not cleaned up automatically on Win ((DiskFileItemFactory) upload.getFileItemFactory()).getFileCleaningTracker().exitWhenFinished(); request.setAttribute(MultipartForm.REQUEST_ATTRIBUTE_NAME, form); return form; }