List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload getItemIterator
public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException, IOException
From source file:org.oryxeditor.server.StencilSetExtensionGeneratorServlet.java
/** * Request parameters are documented in/*from w w w .j a v a 2 s . c om*/ * editor/test/examples/stencilset-extension-generator.xhtml * The parameter 'csvFile' is always required. * An example CSV file can be found in * editor/test/examples/design-thinking-example-data.csv * which has been exported using OpenOffice.org from * editor/test/examples/design-thinking-example-data.ods */ protected void doPost(HttpServletRequest request, HttpServletResponse response) { this.request = request; this.response = response; this.baseUrl = Repository.getBaseUrl(request); this.repository = new Repository(baseUrl); // parameters and their default values String modelNamePrefix = "Generated Model using "; String stencilSetExtensionNamePrefix = StencilSetExtensionGenerator.DEFAULT_STENCIL_SET_EXTENSION_NAME_PREFIX; String baseStencilSetPath = StencilSetExtensionGenerator.DEFAULT_BASE_STENCIL_SET_PATH; String baseStencilSet = StencilSetExtensionGenerator.DEFAULT_BASE_STENCIL_SET; String baseStencil = StencilSetExtensionGenerator.DEFAULT_BASE_STENCIL; List<String> stencilSetExtensionUrls = new ArrayList<String>(); String[] columnPropertyMapping = null; String[] csvHeader = null; List<Map<String, String>> stencilPropertyMatrix = new ArrayList<Map<String, String>>(); String modelDescription = "The initial version of this model has been created by the Stencilset Extension Generator."; String additionalERDFContentForGeneratedModel = ""; String[] modelTags = null; // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request FileItemIterator iterator; try { iterator = upload.getItemIterator(request); while (iterator.hasNext()) { FileItemStream item = iterator.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { // ordinary form field String value = Streams.asString(stream); //System.out.println("Form field " + name + " with value " // + value + " detected."); if (name.equals("modelNamePrefix")) { modelNamePrefix = value; } else if (name.equals("stencilSetExtensionNamePrefix")) { stencilSetExtensionNamePrefix = value; } else if (name.equals("baseStencilSetPath")) { baseStencilSetPath = value; } else if (name.equals("baseStencilSet")) { baseStencilSet = value; } else if (name.equals("stencilSetExtension")) { stencilSetExtensionUrls.add(value); } else if (name.equals("baseStencil")) { baseStencil = value; } else if (name.equals("columnPropertyMapping")) { columnPropertyMapping = value.split(","); } else if (name.equals("modelDescription")) { modelDescription = value; } else if (name.equals("modelTags")) { modelTags = value.split(","); } else if (name.equals("additionalERDFContentForGeneratedModel")) { additionalERDFContentForGeneratedModel = value; } } else { // file field //System.out.println("File field " + name + " with file name " // + item.getName() + " detected."); // Process the input stream if (name.equals("csvFile")) { CsvMapReader csvFileReader = new CsvMapReader(new InputStreamReader(stream), CsvPreference.EXCEL_PREFERENCE); csvHeader = csvFileReader.getCSVHeader(true); if (columnPropertyMapping != null && columnPropertyMapping.length > 0) { csvHeader = columnPropertyMapping; } Map<String, String> row; while ((row = csvFileReader.read(csvHeader)) != null) { stencilPropertyMatrix.add(row); } } } } // generate stencil set Date creationDate = new Date(System.currentTimeMillis()); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss.SSS"); String stencilSetExtensionName = stencilSetExtensionNamePrefix + " " + dateFormat.format(creationDate); stencilSetExtensionUrls .add(StencilSetExtensionGenerator.generateStencilSetExtension(stencilSetExtensionName, stencilPropertyMatrix, columnPropertyMapping, baseStencilSet, baseStencil)); // generate new model String modelName = modelNamePrefix + stencilSetExtensionName; String model = repository.generateERDF(UUID.randomUUID().toString(), additionalERDFContentForGeneratedModel, baseStencilSetPath, baseStencilSet, stencilSetExtensionUrls, modelName, modelDescription); String modelUrl = baseUrl + repository.saveNewModel(model, modelName, modelDescription, baseStencilSet, baseStencilSetPath); // hack for reverse proxies: modelUrl = modelUrl.substring(modelUrl.lastIndexOf("http://")); // tag model if (modelTags != null) { for (String tagName : modelTags) { repository.addTag(modelUrl, tagName.trim()); } } // redirect client to editor with that newly generated model response.setHeader("Location", modelUrl); response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { // TODO Add some error message } }
From source file:org.owasp.esapi.waf.internal.InterceptingHTTPServletRequest.java
public InterceptingHTTPServletRequest(HttpServletRequest request) throws FileUploadException, IOException { super(request); allParameters = new Vector<Parameter>(); allParameterNames = new Vector<String>(); /*// w ww. ja v a 2s. c om * Get all the regular parameters. */ Enumeration e = request.getParameterNames(); while (e.hasMoreElements()) { String param = (String) e.nextElement(); allParameters.add(new Parameter(param, request.getParameter(param), false)); allParameterNames.add(param); } /* * Get all the multipart fields. */ isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { requestBody = new RandomAccessFile(File.createTempFile("oew", "mpc"), "rw"); byte buffer[] = new byte[CHUNKED_BUFFER_SIZE]; long size = 0; int len = 0; while (len != -1 && size <= Integer.MAX_VALUE) { len = request.getInputStream().read(buffer, 0, CHUNKED_BUFFER_SIZE); if (len != -1) { size += len; requestBody.write(buffer, 0, len); } } is = new RAFInputStream(requestBody); ServletFileUpload sfu = new ServletFileUpload(); FileItemIterator iter = sfu.getItemIterator(this); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); /* * If this is a regular form field, add it to our * parameter collection. */ if (item.isFormField()) { String value = Streams.asString(stream); allParameters.add(new Parameter(name, value, true)); allParameterNames.add(name); } else { /* * This is a multipart content that is not a * regular form field. Nothing to do here. */ } } requestBody.seek(0); } }
From source file:org.plista.kornakapi.web.servlets.BatchAddCandidatesServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int batchSize = getParameterAsInt(request, Parameters.BATCH_SIZE, Parameters.DEFAULT_BATCH_SIZE); ServletFileUpload upload = new ServletFileUpload(); FileItemIterator fileItems;//from w w w. jav a 2s. c o m InputStream in = null; boolean fileProcessed = false; Storage storage = this.getDomainIndependetStorage(); try { fileItems = upload.getItemIterator(request); while (fileItems.hasNext()) { FileItemStream item = fileItems.next(); if (Parameters.FILE.equals(item.getFieldName()) && !item.isFormField()) { in = item.openStream(); Iterator<Candidate> candidates = new CSVCandidateFileIterator(in); storage.batchAddCandidates(candidates, batchSize); fileProcessed = true; break; } } } catch (FileUploadException e) { throw new IOException(e); } finally { Closeables.closeQuietly(in); } if (!fileProcessed) { throw new IllegalStateException("Unable to find supplied data file!"); } }
From source file:org.plista.kornakapi.web.servlets.BatchDeleteCandidatesServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int batchSize = getParameterAsInt(request, Parameters.BATCH_SIZE, Parameters.DEFAULT_BATCH_SIZE); ServletFileUpload upload = new ServletFileUpload(); FileItemIterator fileItems;//from w ww. ja v a2 s . c o m InputStream in = null; boolean fileProcessed = false; Storage storage = this.getDomainIndependetStorage(); try { fileItems = upload.getItemIterator(request); while (fileItems.hasNext()) { FileItemStream item = fileItems.next(); if (Parameters.FILE.equals(item.getFieldName()) && !item.isFormField()) { in = item.openStream(); Iterator<Candidate> candidates = new CSVCandidateFileIterator(in); storage.batchDeleteCandidates(candidates, batchSize); fileProcessed = true; break; } } } catch (FileUploadException e) { throw new IOException(e); } finally { Closeables.closeQuietly(in); } if (!fileProcessed) { throw new IllegalStateException("Unable to find supplied data file!"); } }
From source file:org.plista.kornakapi.web.servlets.BatchSetPreferencesServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int batchSize = getParameterAsInt(request, Parameters.BATCH_SIZE, Parameters.DEFAULT_BATCH_SIZE); ServletFileUpload upload = new ServletFileUpload(); FileItemIterator fileItems;//w ww . j av a2 s .c o m InputStream in = null; boolean fileProcessed = false; Storage storage = this.getDomainIndependetStorage(); try { fileItems = upload.getItemIterator(request); while (fileItems.hasNext()) { FileItemStream item = fileItems.next(); if (Parameters.FILE.equals(item.getFieldName()) && !item.isFormField()) { in = item.openStream(); Iterator<Preference> preferences = new CSVPreferenceFileIterator(in); storage.batchSetPreferences(preferences, batchSize); fileProcessed = true; break; } } } catch (FileUploadException e) { throw new IOException(e); } finally { Closeables.closeQuietly(in); } if (!fileProcessed) { throw new IllegalStateException("Unable to find supplied data file!"); } }
From source file:org.retrostore.request.RequestDataImpl.java
/** * Parses a multipart request and gets its files and parameters. *//*from w ww .ja va2s . c om*/ private static void parseMultipartContent(HttpServletRequest request, Map<String, String> formParams, List<UploadFile> uploadFiles) { if (!ServletFileUpload.isMultipartContent(request)) { return; } ServletFileUpload upload = new ServletFileUpload(); try { FileItemIterator itemIterator = upload.getItemIterator(request); while (itemIterator.hasNext()) { FileItemStream file = itemIterator.next(); ByteArrayOutputStream bytesOut = new ByteArrayOutputStream(); ByteStreams.copy(file.openStream(), bytesOut); byte[] bytes = bytesOut.toByteArray(); // If an item has a name, we think it's a file, otherwise we treat it as a regular string // parameter. if (!Strings.isNullOrEmpty(file.getName())) { uploadFiles.add(new UploadFile(file.getFieldName(), file.getName(), bytes)); } else { String str = new String(bytes, StandardCharsets.UTF_8); formParams.put(file.getFieldName(), str); } } } catch (FileUploadException | IOException e) { LOG.log(Level.WARNING, "Cannot parse request for filename.", e); } }
From source file:org.sigmah.server.endpoint.export.sigmah.ExportModelServlet.java
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if (ServletFileUpload.isMultipartContent(req)) { final Authentication authentication = retrieveAuthentication(req); boolean hasPermission = false; if (authentication != null) { final User user = authentication.getUser(); ProfileDTO profile = SigmahAuthDictionaryServlet.aggregateProfiles(user, null, injector); hasPermission = ProfileUtils.isGranted(profile, GlobalPermissionEnum.VIEW_ADMIN); }//from w w w. jav a 2 s . c om if (hasPermission) { final ServletFileUpload fileUpload = new ServletFileUpload(); final HashMap<String, String> properties = new HashMap<String, String>(); byte[] data = null; try { final FileItemIterator iterator = fileUpload.getItemIterator(req); // Iterating on the fields sent into the request while (iterator.hasNext()) { final FileItemStream item = iterator.next(); final String name = item.getFieldName(); final InputStream stream = item.openStream(); if (item.isFormField()) { final String value = Streams.asString(stream); LOG.debug("field '" + name + "' = '" + value + '\''); // The current field is a property properties.put(name, value); } else { // The current field is a file LOG.debug("field '" + name + "' (FILE)"); final ByteArrayOutputStream serializedData = new ByteArrayOutputStream(); long dataSize = 0L; int b = stream.read(); while (b != -1 && dataSize < MAXIMUM_FILE_SIZE) { serializedData.write(b); dataSize++; b = stream.read(); } stream.close(); data = serializedData.toByteArray(); } } } catch (FileUploadException ex) { LOG.warn("Error while receiving a serialized model.", ex); } if (data != null) { // A file has been received final String type = properties.get("type"); final ModelHandler handler = handlers.get(type); if (handler != null) { if (handler instanceof ProjectModelHandler) { final String projectModelTypeAsString = properties.get("project-model-type"); try { final ProjectModelType projectModelType = ProjectModelType .valueOf(projectModelTypeAsString); ((ProjectModelHandler) handler).setProjectModelType(projectModelType); } catch (IllegalArgumentException e) { LOG.debug("Bad value for project model type: " + projectModelTypeAsString, e); } } final ByteArrayInputStream inputStream = new ByteArrayInputStream(data); try { handler.importModel(inputStream, injector.getInstance(EntityManager.class), authentication); } catch (ExportException ex) { LOG.error("Model import error, type: " + type, ex); resp.sendError(500); } } else { LOG.warn("The asked model type (" + type + ") doesn't have any handler registered."); resp.sendError(501); } } else { LOG.warn("No file has been received."); resp.sendError(400); } } else { LOG.warn("Unauthorized access to the import service from user " + authentication); resp.sendError(401); } } else { LOG.warn("The request doesn't have the correct enctype."); resp.sendError(400); } }
From source file:org.sigmah.server.servlet.ImportServlet.java
private byte[] readFileAndProperties(final HttpServletRequest request, final Map<String, String> properties) throws FileUploadException, IOException { byte[] data = null; final ServletFileUpload fileUpload = new ServletFileUpload(); final FileItemIterator iterator = fileUpload.getItemIterator(request); // Iterating on the fields sent into the request while (iterator.hasNext()) { final FileItemStream item = iterator.next(); final String name = item.getFieldName(); final InputStream stream = item.openStream(); if (item.isFormField()) { final String value = Streams.asString(stream); LOG.debug("field '" + name + "' = '" + value + '\''); // The current field is a property properties.put(name, value); } else {/*from w w w . j a v a 2s . co m*/ // The current field is a file LOG.debug("field '" + name + "' (FILE)"); final ByteArrayOutputStream serializedData = new ByteArrayOutputStream(); long dataSize = 0L; int b = stream.read(); while (b != -1 && dataSize < MAXIMUM_FILE_SIZE) { serializedData.write(b); dataSize++; b = stream.read(); } stream.close(); data = serializedData.toByteArray(); } } return data; }
From source file:org.sosy_lab.cpachecker.appengine.server.resource.TasksServerResource.java
@Override public Representation createTaskFromHtml(Representation input) throws IOException { List<String> errors = new LinkedList<>(); Map<String, Object> settings = new HashMap<>(); Map<String, String> options = new HashMap<>(); ServletFileUpload upload = new ServletFileUpload(); try {//w w w . ja v a 2 s . c o m FileItemIterator iter = upload.getItemIterator(ServletUtils.getRequest(getRequest())); while (iter.hasNext()) { FileItemStream item = iter.next(); InputStream stream = item.openStream(); if (item.isFormField()) { String value = Streams.asString(stream); switch (item.getFieldName()) { case "specification": value = (value.equals("")) ? null : value; settings.put("specification", value); break; case "configuration": value = (value.equals("")) ? null : value; settings.put("configuration", value); break; case "disableOutput": options.put("output.disable", "true"); break; case "disableExportStatistics": options.put("statistics.export", "false"); break; case "dumpConfig": options.put("configuration.dumpFile", "UsedConfiguration.properties"); break; case "logLevel": options.put("log.level", value); break; case "machineModel": options.put("analysis.machineModel", value); break; case "wallTime": options.put("limits.time.wall", value); break; case "instanceType": options.put("gae.instanceType", value); break; case "programText": if (!value.isEmpty()) { settings.put("programName", "program.c"); settings.put("programText", value); } break; } } else { if (settings.get("programText") == null) { settings.put("programName", item.getName()); settings.put("programText", IOUtils.toString(stream)); } } } } catch (FileUploadException | IOException e) { getLogger().log(Level.WARNING, "Could not upload program file.", e); errors.add("task.program.CouldNotUpload"); } settings.put("options", options); Task task = null; if (errors.isEmpty()) { TaskBuilder taskBuilder = new TaskBuilder(); task = taskBuilder.fromMap(settings); errors = taskBuilder.getErrors(); } if (errors.isEmpty()) { try { Configuration config = Configuration.builder().setOptions(task.getOptions()).build(); new GAETaskQueueTaskExecutor(config).execute(task); } catch (InvalidConfigurationException e) { errors.add("error.invalidConfiguration"); } } if (errors.isEmpty()) { getResponse().setStatus(Status.SUCCESS_CREATED); redirectSeeOther("/tasks/" + task.getKey()); return getResponseEntity(); } getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST); return FreemarkerUtil.templateBuilder().context(getContext()).addData("task", task) .addData("errors", errors).addData("allowedOptions", DefaultOptions.getDefaultOptions()) .addData("defaultOptions", DefaultOptions.getImmutableOptions()) .addData("specifications", DefaultOptions.getSpecifications()) .addData("configurations", DefaultOptions.getConfigurations()) .addData("cpacheckerVersion", CPAchecker.getCPAcheckerVersion()).templateName("root.ftl").build(); }
From source file:org.synchronoss.cloud.nio.multipart.example.web.MultipartController.java
/** * <p> Example of parsing the multipart request using commons file upload. In this case the parsing happens in blocking io. * * @param request The {@code HttpServletRequest} * @return The {@code VerificationItems} * @throws Exception if an exception happens during the parsing *//*w w w. ja va2 s . c o m*/ @RequestMapping(value = "/blockingio/fileupload/multipart", method = RequestMethod.POST) public @ResponseBody VerificationItems blockingIoMultipart(final HttpServletRequest request) throws Exception { assertRequestIsMultipart(request); final ServletFileUpload servletFileUpload = new ServletFileUpload(); final FileItemIterator fileItemIterator = servletFileUpload.getItemIterator(request); final VerificationItems verificationItems = new VerificationItems(); Metadata metadata = null; while (fileItemIterator.hasNext()) { FileItemStream fileItemStream = fileItemIterator.next(); if (METADATA_FIELD_NAME.equals(fileItemStream.getFieldName())) { if (metadata != null) { throw new IllegalStateException("Found more than one metadata field"); } metadata = unmarshalMetadata(fileItemStream.openStream()); } else { VerificationItem verificationItem = buildVerificationItem(fileItemStream.openStream(), fileItemStream.getFieldName()); verificationItems.getVerificationItems().add(verificationItem); } } processVerificationItems(verificationItems, metadata, false); return verificationItems; }