List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload parseRequest
public List parseRequest(HttpServletRequest request) throws FileUploadException
From source file:it.fub.jardin.server.Upload.java
@Override public void doPost(final HttpServletRequest request, final HttpServletResponse response) /* throws ServletException, IOException */ { try {/*from w ww. ja va 2 s.c om*/ this.dbProperties = new DbProperties(); } catch (VisibleException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } this.dbConnectionHandler = this.dbProperties.getConnectionHandler(); try { this.dbUtils = new DbUtils(dbProperties, dbConnectionHandler); } catch (VisibleException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } this.mailUtility = new MailUtility(dbConnectionHandler.getDbConnectionParameters().getMailSmtpHost(), dbConnectionHandler.getDbConnectionParameters().getMailSmtpAuth(), dbConnectionHandler.getDbConnectionParameters().getMailSmtpUser(), dbConnectionHandler.getDbConnectionParameters().getMailSmtpPass(), dbConnectionHandler.getDbConnectionParameters().getMailSmtpSender(), dbConnectionHandler.getDbConnectionParameters().getMailSmtpSysadmin()); subSystem = dbConnectionHandler.getDbConnectionParameters().getSubSystem(); // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(MAX_SIZE); String m = null; try { // Parse the request List<?> /* FileItem */ items = upload.parseRequest(request); // Process the uploaded items Iterator<?> iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { this.processFormField(item); } else { m = this.processUploadedFile(item); } } response.setContentType("text/plain"); response.getWriter().write(m); } catch (Exception e) { // Log.warn("Errore durante l'upload del file", e); } }
From source file:com.jkingii.web.files.upload.java
/** * Processes requests for both HTTP//from w w w .j a v a 2s . c o m * <code>GET</code> and * <code>POST</code> methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Check that we have a file upload request isMultipart = ServletFileUpload.isMultipartContent(request); FileDataBase fdb = null; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { CSession cSession = (CSession) request.getSession().getAttribute("cSession"); if (!isMultipart) { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); return; } DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(tempDir)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Se verifica si el usuario tiene permisos de escritura. ColumnasPermisos permiso = checkPermisos(request, fileItems, out); if (permiso == null) { return; } // Process the uploaded file items Iterator i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); MessageDigest md5 = MessageDigest.getInstance("MD5"); if (!fi.isFormField()) { // Get the uploaded file parameters logger.info("Prosess Request: obteniendo session: [" + cSession + "] jsessionid = [" + request.getSession().getId() + "]", this); fdb = new FileDataBase(GenKey.newKey(), cSession.getAccessInfo().getEmpresa(), cSession.getAccessInfo().getUserInfo(), new Date().getTime(), fi.getName(), new MimeType().factory().getMime(fi.getName(), fi.get()), fi.get(), Hexadecimal.getHex(md5.digest(fi.get())), fi.getSize(), permiso); fileDataBaseFacade.create(fdb); } } ResponseConfig config = new ResponseConfig(); config.setTimeZone(cSession.getAccessInfo().getTimeZone()); out.println(fdb.toJson(config)); } catch (FileUploadException | NoSuchAlgorithmException e) { logger.error("Error cargando el fichero en el servidor, " + "Exception: {}", e.getMessage()); } catch (UnknownColumnException e) { logger.error("Imposible la columna para el link debe existir referer[{}], " + "p[{}]", request.getHeader("referer"), request.getParameter(PERMISO_FIELD)); logger.debug("referrer: " + request.getHeader("referrer")); } finally { out.close(); } }
From source file:admin.controller.ServletChangeLooks.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.//from w ww.ja v a 2 s . c om * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.processRequest(request, response); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String filePath = ""; String fileName, fieldName, uploadPath, deletePath, file_name_to_delete = "", uploadPath1; Looks look; RequestDispatcher request_dispatcher; String lookname = "", lookid = ""; Integer organization = 0; look = new Looks(); boolean check = false; File file; int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; try { // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(AppConstants.TMP_FOLDER)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); out.println("<html>"); out.println("<head>"); out.println("<title>JSP File upload</title>"); out.println("</head>"); out.println("<body>"); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (fi.isFormField()) { // Get the uploaded file parameters fieldName = fi.getFieldName(); if (fieldName.equals("lookname")) { lookname = fi.getString(); } if (fieldName.equals("lookid")) { lookid = fi.getString(); } if (fieldName.equals("organization")) { organization = Integer.parseInt(fi.getString()); } file_name_to_delete = look.getFileName(Integer.parseInt(lookid)); } else { check = look.checkAvailabilities(Integer.parseInt(lookid), lookname, organization); if (check == false) { fieldName = fi.getFieldName(); fileName = fi.getName(); File uploadDir = new File(AppConstants.LOOK_IMAGES_HOME); if (!uploadDir.exists()) { uploadDir.mkdirs(); } // int inStr = fileName.indexOf("."); // String Str = fileName.substring(0, inStr); // // fileName = lookname + "_" + Str + ".png"; fileName = lookname + "_" + fileName; boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); String file_path = AppConstants.LOOK_IMAGES_HOME + File.separator + fileName; String delete_path = AppConstants.LOOK_IMAGES_HOME + File.separator + file_name_to_delete; File deleteFile = new File(delete_path); deleteFile.delete(); File storeFile = new File(file_path); fi.write(storeFile); out.println("Uploaded Filename: " + filePath + "<br>"); look.changeLooks(Integer.parseInt(lookid), lookname, fileName, organization); response.sendRedirect(request.getContextPath() + "/admin/looks.jsp"); } else { response.sendRedirect( request.getContextPath() + "/admin/editlook.jsp?exist=exist&look_id=" + lookid + "&look_name=" + lookname + "&organization_id=" + organization + "&image_file_name=" + file_name_to_delete); } } } out.println("</body>"); out.println("</html>"); } else { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); } } catch (Exception ex) { logger.log(Level.SEVERE, "Exception while editing the looks", ex); } finally { out.close(); } }
From source file:net.jforum.core.support.vraptor.DefaultLogicLocator.java
@SuppressWarnings({ "deprecation", "unchecked" }) private void handleMultipartRequest(VRaptorServletRequest servletRequest) { if (!FileUploadBase.isMultipartContent(servletRequest)) { return;// ww w . j a v a 2 s .c om } // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(4096 * 16, this.temporaryDirectory); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> fileItems; // assume we know there are two files. The first file is a small // text file, the second is unknown and is written to a file on // the server try { fileItems = upload.parseRequest(servletRequest); } catch (FileUploadException e) { logger.warn("There was some problem parsing this multipart request, or someone is not sending a " + "RFC1867 compatible multipart request.", e); return; } for (FileItem item : fileItems) { if (item.isFormField()) { servletRequest.addParameterValue(item.getFieldName(), item.getString()); } else { if (!item.getName().trim().equals("")) { try { File file = File.createTempFile("vraptor.", ".upload"); item.write(file); UploadedFileInformation fileInformation = new BasicUploadedFileInformation(file, item.getName(), item.getContentType()); this.registeUploadedFile(servletRequest, item.getFieldName(), fileInformation); } catch (Exception e) { logger.error("Nasty uploaded file " + item.getName(), e); } } else { logger.debug("A file field was empy: " + item.getFieldName()); } } } }
From source file:com.ephesoft.gxt.admin.server.ImportTableUploadServlet.java
/** * This API is used to process uploaded file . * //ww w. ja v a 2 s . c o m * @param upload {@link ServletFileUpload} uploaded file. * @param req {@link HttpServletRequest}. * @param printWriter {@link PrintWriter}. * @param parentDirPath {@link String} to copy the file in directory path. * @return {@link File} temporary file after copy. */ private String processUploadedFile(final ServletFileUpload upload, final HttpServletRequest req, final PrintWriter printWriter, final String parentDirPath) { String tableFileName = ""; String tablePathname = ""; File tempTableFile = null; List<FileItem> items; try { items = upload.parseRequest(req); for (final FileItem item : items) { if (!item.isFormField()) {// && "importFile".equals(item.getFieldName())) { tablePathname = getTablePath(item, parentDirPath); tableFileName = getTableFileName(item); tempTableFile = copyItemContentInFile(item, tablePathname, printWriter); } } } catch (final FileUploadException e) { printWriter.write("Unable to read the form contents.Please try again."); } return tempTableFile.getAbsolutePath(); }
From source file:ReceiveImage.java
/** * Handles the HTTP <code>POST</code> method. * * @param request servlet request//w w w .j av a2 s .c o m * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(isMultipart = ServletFileUpload.isMultipartContent(request)); DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); try { // Parse the request to get file items. List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); System.out.println(fi.isFormField()); if (fi.isFormField()) { System.out.println("Got a form field: " + fi.getFieldName() + " " + fi); } else { // Get the uploaded file parameters //System.out.println(fi.getString("Command")); String fieldName = fi.getFieldName(); String fileName = fi.getName(); String contentType = fi.getContentType(); boolean isInMemory = fi.isInMemory(); System.out.println(fieldName); System.out.println(fileName); String courseHour, course, regNo, date, temp = fileName; int j = temp.indexOf("sep"); courseHour = temp.substring(0, j); temp = temp.substring(j + 3); j = temp.indexOf("sep"); course = temp.substring(0, j); temp = temp.substring(j + 3); j = temp.indexOf("sep"); regNo = temp.substring(0, j); date = temp.substring(j + 3); date = date.replaceAll("s", "-"); System.out.println("ualal" + courseHour + course + regNo + date); System.out.println(contentType); long sizeInBytes = fi.getSize(); // Write the file String uploadFolder = getServletContext().getRealPath("") + "Photo\\" + course + "\\" + regNo + "\\"; // String uploadFolder = "\\SUST_PHOTO_PRESENT\\Photo\\" + course + "\\" + regNo + "\\"; uploadFolder = uploadFolder.replace("\\build", ""); Path path = Paths.get(uploadFolder); //if directory exists? if (!Files.exists(path)) { try { Files.createDirectories(path); } catch (IOException e) { //fail to create directory e.printStackTrace(); } } //uploadFolder+= "\\"+date+".jpg"; System.out.println(fileName); System.out.println(uploadFolder); // file = new File(uploadFolder + date); date = date.replaceAll("-", "/"); date = date.substring(0, 10); String total_url = uploadFolder + date.replaceAll("/", "-") + ".jpg"; System.out.println(total_url); String formattedUrl = total_url.replaceAll("\\\\", "/"); System.out.println(formattedUrl.substring(38)); System.out.println("-------------->>>>>>>>" + course + " " + date + regNo + total_url); AddUser.updateUrl(courseHour, course, date, regNo, formattedUrl.substring(38)); fi.write(file); // System.out.println("-------------->>>>>>>>" +course+" "+ date+ regNo+total_url); // try { // SavePhoto.saveIMG("CSE", "2016", "tada","F:\\1.png"); // } catch (IOException ex) { // Logger.getLogger(SavePhoto.class.getName()).log(Level.SEVERE, null, ex); // } System.out.println(uploadFolder); } } } catch (Exception ex) { System.out.println(ex); } }
From source file:business.controllers.UploadImageController.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (!ServletFileUpload.isMultipartContent(request)) { PrintWriter writer = response.getWriter(); writer.println("Request does not contain upload data"); writer.flush();/*from www. j av a2 s .com*/ return; } String oauthCode = ""; // configures upload settings DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(UploadConstant.THRESHOLD_SIZE); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setFileSizeMax(UploadConstant.MAX_FILE_SIZE); upload.setSizeMax(UploadConstant.MAX_REQUEST_SIZE); List formItems = new ArrayList(); try { // parses the request's content to extract file data formItems = upload.parseRequest(request); Iterator iter = formItems.iterator(); // iterates over form's fields while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); // processes only fields that are not form fields if (item.getFieldName().equals("oauthcode")) { oauthCode = item.getString(); } } } catch (FileUploadException ex) { logger.error("Write image:" + ex); } //checkLogin BusinessChatHandler handler = new BusinessChatHandler(); try { if (handler.isLogin(oauthCode)) { uploadImage(request, response, formItems); } } catch (TException ex) { java.util.logging.Logger.getLogger(UploadImageController.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:gov.nist.appvet.tool.SynchronousService.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null;// ww w . j a v a2 s . co m FileItem fileItem = null; try { items = upload.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } // Get form fields Iterator iter = items.iterator(); FileItem item = null; while (iter.hasNext()) { item = (FileItem) iter.next(); if (item.isFormField()) { //String incomingParameter = item.getFieldName(); //String incomingValue = item.getString(); // For this service, we do not expect any input parameters // except for the app file. //log.debug("Ignoring " + incomingParameter + " = " + incomingValue); } else { // item should now hold the received file if (item != null) { fileItem = item; log.debug("Received file: " + fileItem.getName()); } } } String appFilePath = null; String fileName = null; Random rand = new Random(new Date().getTime()); final int randInt = rand.nextInt(9999999); String id = new Integer(randInt).toString(); if (fileItem != null) { fileName = getFileName(fileItem.getName()); if (!fileName.endsWith(".apk")) { sendHttp400(response, "Invalid app file: " + fileItem.getName()); return; } appFilePath = Properties.TEMP_DIR + "/" + id + fileName; log.debug("App file path: " + appFilePath); if (!saveFileUpload(fileItem, appFilePath)) { sendHttp500(response, "Could not save uploaded file"); return; } } else { sendHttp400(response, "No app was received."); return; } String command = Properties.command + " " + appFilePath; StringBuffer reportBuffer = new StringBuffer(); boolean succeeded = runTool(command, reportBuffer); if (!succeeded) { if (reportBuffer.toString().contains("java.lang.SecurityException")) { returnReport(response, fileName, ToolStatus.FAIL, reportBuffer.toString()); } else { log.error("Error detected: " + reportBuffer.toString()); returnReport(response, fileName, ToolStatus.ERROR, reportBuffer.toString()); } } else { log.debug("Analyzing report for " + appFilePath); ToolStatus reportStatus = analyzeReport(reportBuffer.toString()); log.debug("Result: " + reportStatus.name()); returnReport(response, fileName, reportStatus, reportBuffer.toString()); } boolean deleted = deleteFile(appFilePath); if (deleted) { log.debug("Deleted " + appFilePath); } else { log.error("Could not delete file " + appFilePath); } // Clean up reportBuffer = null; System.gc(); }
From source file:com.ephesoft.dcma.gwt.admin.bm.server.UploadImageFileServlet.java
/** * Overridden doPost method.// w ww . jav a 2s .com * * @param request HttpServletRequest * @param response HttpServletResponse * @throws IOException */ @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { String batchClassId = null; String docName = null; String fileName = null; String isAdvancedTableInfo = null; InputStream instream = null; OutputStream out = null; PrintWriter printWriter = resp.getWriter(); if (ServletFileUpload.isMultipartContent(req)) { // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); List<FileItem> items; BatchSchemaService batchSchemaService = this.getSingleBeanOfType(BatchSchemaService.class); String uploadPath = null; try { items = upload.parseRequest(req); for (FileItem item : items) { // process only file upload - discard other form item types if (item.isFormField()) { if (item.getFieldName().equalsIgnoreCase("batchClassID")) { batchClassId = item.getString(); } else if (item.getFieldName().equalsIgnoreCase("docName")) { docName = item.getString(); } else if (item.getFieldName().equalsIgnoreCase("isAdvancedTableInfo")) { isAdvancedTableInfo = item.getString(); } } else if (!item.isFormField() && "importFile".equals(item.getFieldName())) { fileName = item.getName(); if (fileName != null) { fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1); } instream = item.getInputStream(); } } if (batchClassId == null || docName == null) { LOG.error( "Error while loading image... Either batchClassId or doc type is null. Batch Class Id :: " + batchClassId + " Doc Type :: " + docName); printWriter.write("Error while loading image... Either batchClassId or doc type is null."); } else { StringBuilder uploadPathString = uploadPath(batchClassId, docName, isAdvancedTableInfo, batchSchemaService); File uploadFolder = new File(uploadPathString.toString()); if (!uploadFolder.exists()) { try { boolean tempPath = uploadFolder.mkdirs(); if (!tempPath) { LOG.error( "Unable to create the folders in the temp directory specified. Change the path and permissions in dcma-batch.properties"); printWriter.write( "Unable to create the folders in the temp directory specified. Change the path and permissions in dcma-batch.properties"); return; } } catch (Exception e) { LOG.error("Unable to create the folders in the temp directory.", e); printWriter .write("Unable to create the folders in the temp directory." + e.getMessage()); return; } } uploadPathString.append(File.separator); uploadPathString.append(fileName); uploadPath = uploadPathString.toString(); out = new FileOutputStream(uploadPath); byte buf[] = new byte[BatchClassManagementConstants.BUFFER_SIZE]; int len = instream.read(buf); while ((len) > 0) { out.write(buf, 0, len); len = instream.read(buf); } // convert tiff to png ImageProcessService imageProcessService = this.getSingleBeanOfType(ImageProcessService.class); imageProcessService.generatePNGForImage(new File(uploadPath)); LOG.info("Png file created successfully for file: " + uploadPath); } } catch (FileUploadException e) { LOG.error("Unable to read the form contents." + e, e); printWriter.write("Unable to read the form contents.Please try again."); } catch (DCMAException e) { LOG.error("Unable to generate PNG." + e, e); printWriter.write("Unable to generate PNG.Please try again."); } finally { if (out != null) { out.close(); } if (instream != null) { instream.close(); } } printWriter.write("file_seperator:" + File.separator); printWriter.write("|"); } }
From source file:com.ultrapower.eoms.common.plugin.ajaxupload.AjaxMultiPartRequest.java
/** * Creates a new request wrapper to handle multi-part data using methods * adapted from Jason Pell's multipart classes (see class description). * /*from w ww . j a v a2 s .c om*/ * @param saveDir * the directory to save off the file * @param servletRequest * the request containing the multipart * @throws java.io.IOException * is thrown if encoding fails. * @throws */ public void parse(HttpServletRequest servletRequest, String saveDir) throws IOException { Integer delay = 3; UploadListener listener = null; DiskFileItemFactory fac = null; // Parse the request try { if (maxSize >= 0L && servletRequest.getContentLength() > maxSize) { servletRequest.setAttribute("error", "size"); FileItemIterator it = new ServletFileUpload(fac).getItemIterator(servletRequest); // handle with each file: while (it.hasNext()) { FileItemStream item = it.next(); if (item.isFormField()) { List<String> values; if (params.get(item.getFieldName()) != null) { values = params.get(item.getFieldName()); } else { values = new ArrayList<String>(); } InputStream stream = item.openStream(); values.add(Streams.asString(stream)); params.put(item.getFieldName(), values); } } return; } else { listener = new UploadListener(servletRequest, delay); fac = new MonitoredDiskFileItemFactory(listener); } // Make sure that the data is written to file fac.setSizeThreshold(0); if (saveDir != null) { fac.setRepository(new File(saveDir)); } ServletFileUpload upload = new ServletFileUpload(fac); upload.setSizeMax(maxSize); List items = upload.parseRequest(createRequestContext(servletRequest)); for (Object item1 : items) { FileItem item = (FileItem) item1; if (log.isDebugEnabled()) log.debug("Found item " + item.getFieldName()); if (item.isFormField()) { log.debug("Item is a normal form field"); List<String> values; if (params.get(item.getFieldName()) != null) { values = params.get(item.getFieldName()); } else { values = new ArrayList<String>(); } String charset = servletRequest.getCharacterEncoding(); if (charset != null) { values.add(item.getString(charset)); } else { values.add(item.getString()); } params.put(item.getFieldName(), values); } else { log.debug("Item is a file upload"); // Skip file uploads that don't have a file name - meaning // that no file was selected. if (item.getName() == null || item.getName().trim().length() < 1) { log.debug("No file has been uploaded for the field: " + item.getFieldName()); continue; } String targetFileName = item.getName(); if (!targetFileName.contains(":")) item.write(new File(targetDirectory + targetFileName)); //?Action List<FileItem> values; if (files.get(item.getFieldName()) != null) { values = files.get(item.getFieldName()); } else { values = new ArrayList<FileItem>(); } values.add(item); files.put(item.getFieldName(), values); } } } catch (Exception e) { log.error(e); errors.add(e.getMessage()); } }