@Override @SuppressWarnings({"rawtypes"}) protected void doPost(final HttpServletRequest req, final HttpServletResponse response) throws ServletException, IOException { beforePostStart(); final DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(4096); // the location for saving data that is larger than getSizeThreshold() factory.setRepository(new File("/tmp")); if (!ServletFileUpload.isMultipartContent(req)) { LOG.warn("Not a multipart upload"); } final ServletFileUpload upload = new ServletFileUpload(factory); // maximum size before a FileUploadException will be thrown upload.setSizeMax(kuneProperties.getLong(KuneProperties.UPLOAD_MAX_FILE_SIZE) * 1024 * 1024); try { final List fileItems = upload.parseRequest(req); String userHash = null; StateToken stateToken = null; String typeId = null; String fileName = null; FileItem file = null; for (final Iterator iterator = fileItems.iterator(); iterator.hasNext(); ) { final FileItem item = (FileItem) iterator.next(); if (item.isFormField()) { final String name = item.getFieldName(); final String value = item.getString(); LOG.info("name: " + name + " value: " + value); if (name.equals(FileConstants.HASH)) { userHash = value; } if (name.equals(FileConstants.TOKEN)) { stateToken = new StateToken(value); } if (name.equals(FileConstants.TYPE_ID)) { typeId = value; } } else { fileName = item.getName(); LOG.info( "file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize() + " typeId: " + typeId); file = item; } } createUploadedFile(userHash, stateToken, fileName, file, typeId); onSuccess(response); } catch (final FileUploadException e) { onFileUploadException(response); } catch (final Exception e) { onOtherException(response, e); } }