List of usage examples for org.apache.commons.fileupload FileItemStream openStream
InputStream openStream() throws IOException;
From source file:org.ejbca.ui.web.HttpUpload.java
/** * Creates a new upload state and receives all file and parameter data. * This constructor can only be called once per request. * //from www .j a v a 2s. c o m * Use getParameterMap() and getFileMap() on the new object to access the data. * * @param request The servlet request object. * @param fileFields The names of the file fields to receive uploaded data from. * @param maxbytes Maximum file size. * @throws IOException if there are network problems, etc. * @throws FileUploadException if the request is invalid. */ @SuppressWarnings("unchecked") // Needed in some environments, and detected as unnecessary in others. Do not remove! public HttpUpload(HttpServletRequest request, String[] fileFields, int maxbytes) throws IOException, FileUploadException { if (ServletFileUpload.isMultipartContent(request)) { final Map<String, ArrayList<String>> paramTemp = new HashMap<String, ArrayList<String>>(); fileMap = new HashMap<String, byte[]>(); final ServletFileUpload upload = new ServletFileUpload(); final FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { final FileItemStream item = iter.next(); final String name = item.getFieldName(); if (item.isFormField()) { ArrayList<String> values = paramTemp.get(name); if (values == null) { values = new ArrayList<String>(); paramTemp.put(name, values); } values.add(Streams.asString(item.openStream(), request.getCharacterEncoding())); } else if (ArrayUtils.contains(fileFields, name)) { byte[] data = getFileBytes(item, maxbytes); if (data != null && data.length > 0) { fileMap.put(name, data); } } } // Convert to String,String[] map parameterMap = new ParameterMap(); for (Entry<String, ArrayList<String>> entry : paramTemp.entrySet()) { final ArrayList<String> values = entry.getValue(); final String[] valuesArray = new String[values.size()]; parameterMap.put(entry.getKey(), values.toArray(valuesArray)); } } else { parameterMap = new ParameterMap(request.getParameterMap()); fileMap = new HashMap<String, byte[]>(); } }
From source file:org.ejbca.ui.web.HttpUpload.java
private static byte[] getFileBytes(FileItemStream item, int maxbytes) { try {/* ww w . j av a2s . com*/ InputStream is = item.openStream(); int length = 0; byte[] file = new byte[maxbytes]; while (length < maxbytes) { int bytesread = is.read(file, length, maxbytes - length); if (bytesread <= 0) { break; } length += bytesread; } return Arrays.copyOf(file, length); } catch (IOException e) { return null; } }
From source file:org.elfinder.servlets.AbstractConnectorServlet.java
/** * Parse request parameters and files./*ww w. j a v a 2 s . c o m*/ * @param request * @param response */ protected void parseRequest(HttpServletRequest request, HttpServletResponse response) { requestParams = new HashMap<String, Object>(); listFiles = new ArrayList<FileItemStream>(); listFileStreams = new ArrayList<ByteArrayOutputStream>(); // Parse the request if (ServletFileUpload.isMultipartContent(request)) { // multipart request try { ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { requestParams.put(name, Streams.asString(stream)); } else { String fileName = item.getName(); if (fileName != null && !"".equals(fileName.trim())) { listFiles.add(item); ByteArrayOutputStream os = new ByteArrayOutputStream(); IOUtils.copy(stream, os); listFileStreams.add(os); } } } } catch (Exception e) { logger.error("Unexpected error parsing multipart content", e); } } else { // not a multipart for (Object mapKey : request.getParameterMap().keySet()) { String mapKeyString = (String) mapKey; if (mapKeyString.endsWith("[]")) { // multiple values String values[] = request.getParameterValues(mapKeyString); List<String> listeValues = new ArrayList<String>(); for (String value : values) { listeValues.add(value); } requestParams.put(mapKeyString, listeValues); } else { // single value String value = request.getParameter(mapKeyString); requestParams.put(mapKeyString, value); } } } }
From source file:org.elissa.server.StencilSetExtensionGeneratorServlet.java
/** * Request parameters are documented in//from w ww . j ava 2 s. c o m * 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.epics.archiverappliance.mgmt.bpl.UploadChannelArchiverConfigAction.java
@Override public void execute(HttpServletRequest req, HttpServletResponse resp, ConfigService configService) throws IOException { // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(req); if (!isMultipart) { throw new IOException("HTTP request is not sending multipart content; therefore we cannnot process"); }//ww w .j av a 2 s. c o m // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); List<String> fieldsAsPartOfStream = ArchivePVAction.getFieldsAsPartOfStream(configService); try (PrintWriter out = new PrintWriter(new NullOutputStream())) { FileItemIterator iter = upload.getItemIterator(req); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); if (item.isFormField()) { logger.debug("Form field " + name + " detected."); } else { logger.debug("File field " + name + " with file name " + item.getName() + " detected."); try (InputStream is = new BufferedInputStream(item.openStream())) { is.mark(1024); logger.info((new LineNumberReader(new InputStreamReader(is))).readLine()); is.reset(); LinkedList<PVConfig> pvConfigs = EngineConfigParser.importEngineConfig(is); for (PVConfig pvConfig : pvConfigs) { boolean scan = !pvConfig.isMonitor(); float samplingPeriod = pvConfig.getPeriod(); if (logger.isDebugEnabled()) logger.debug("Adding " + pvConfig.getPVName() + " using " + (scan ? SamplingMethod.SCAN : SamplingMethod.MONITOR) + " and a period of " + samplingPeriod); ArchivePVAction.archivePV(out, pvConfig.getPVName(), true, scan ? SamplingMethod.SCAN : SamplingMethod.MONITOR, samplingPeriod, null, null, null, false, configService, fieldsAsPartOfStream); } } catch (Exception ex) { logger.error("Error importing configuration", ex); resp.sendRedirect("../ui/integration.html?message=Error importing config file " + item.getName() + " " + ex.getMessage()); return; } } } resp.sendRedirect("../ui/integration.html?message=Successfully imported configuration files"); } catch (FileUploadException ex) { throw new IOException(ex); } }
From source file:org.fcrepo.server.management.UploadServlet.java
/** * The servlet entry point. http://host:port/fedora/management/upload *///from w w w.j a v a2 s. c o m @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Context context = ReadOnlyContext.getContext(Constants.HTTP_REQUEST.REST.uri, request); try { // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request, looking for "file" InputStream in = null; FileItemIterator iter = upload.getItemIterator(request); while (in == null && iter.hasNext()) { FileItemStream item = iter.next(); logger.info( "Got next item: isFormField=" + item.isFormField() + " fieldName=" + item.getFieldName()); if (!item.isFormField() && item.getFieldName().equals("file")) { in = item.openStream(); } } if (in == null) { sendResponse(HttpServletResponse.SC_BAD_REQUEST, "No data sent.", response); } else { sendResponse(HttpServletResponse.SC_CREATED, m_management.putTempStream(context, in), response); } } catch (AuthzException ae) { throw RootException.getServletException(ae, request, "Upload", new String[0]); } catch (Exception e) { e.printStackTrace(); sendResponse(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getClass().getName() + ": " + e.getMessage(), response); } }
From source file:org.fcrepo.server.rest.RestUtil.java
/** * Retrieves the contents of the HTTP Request. * @return InputStream from the request/*from w w w . j av a2 s. co m*/ */ public static RequestContent getRequestContent(HttpServletRequest request, HttpHeaders headers) throws Exception { RequestContent rContent = null; // See if the request is a multi-part file upload request if (ServletFileUpload.isMultipartContent(request)) { logger.debug("processing multipart content..."); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request, use the first available File item FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); if (!item.isFormField()) { rContent = new RequestContent(); rContent.contentStream = item.openStream(); rContent.mimeType = item.getContentType(); FileItemHeaders itemHeaders = item.getHeaders(); if (itemHeaders != null) { String contentLength = itemHeaders.getHeader("Content-Length"); if (contentLength != null) { rContent.size = Long.parseLong(contentLength); } } break; } else { logger.trace("ignoring form field \"{}\" \"{}\"", item.getFieldName(), item.getName()); } } } else { // If the content stream was not been found as a multipart, // try to use the stream from the request directly if (rContent == null) { String contentLength = request.getHeader("Content-Length"); long size = 0; if (contentLength != null) { size = Long.parseLong(contentLength); } else size = request.getContentLength(); if (size > 0) { rContent = new RequestContent(); rContent.contentStream = request.getInputStream(); rContent.size = size; } else { String transferEncoding = request.getHeader("Transfer-Encoding"); if (transferEncoding != null && transferEncoding.contains("chunked")) { BufferedInputStream bis = new BufferedInputStream(request.getInputStream()); bis.mark(2); if (bis.read() > 0) { bis.reset(); rContent = new RequestContent(); rContent.contentStream = bis; } } else { logger.warn( "Expected chunked data not found- " + "Transfer-Encoding : {}, Content-Length: {}", transferEncoding, size); } } } } // Attempt to set the mime type and size if not already set if (rContent != null) { if (rContent.mimeType == null) { MediaType mediaType = headers.getMediaType(); if (mediaType != null) { rContent.mimeType = mediaType.toString(); } } if (rContent.size == 0) { List<String> lengthHeaders = headers.getRequestHeader("Content-Length"); if (lengthHeaders != null && lengthHeaders.size() > 0) { rContent.size = Long.parseLong(lengthHeaders.get(0)); } } } return rContent; }
From source file:org.galicaster.dashboard.endpoint.DashboardRestService.java
@POST @Consumes(MediaType.MULTIPART_FORM_DATA) @Path("agents/{name}/snapshot.png") public Response setSnapshot(@PathParam("name") String agentName, @Context HttpServletRequest request) throws IOException { try {// ww w . j a v a 2 s .c om if (ServletFileUpload.isMultipartContent(request)) { for (FileItemIterator iter = new ServletFileUpload().getItemIterator(request); iter.hasNext();) { FileItemStream item = iter.next(); if (FILE_ATTACHMENT_FIELD_NAME.equals(item.getFieldName())) { service.setSnapshot(agentName, item.openStream()); return Response.noContent().build(); } } } return Response.status(Response.Status.BAD_REQUEST).build(); } catch (NotFoundException e) { throw new WebApplicationException(e, Response.Status.NOT_FOUND); } catch (Exception e) { logger.error("Received exception {}: {}", e.getClass().getCanonicalName(), e.getMessage()); throw new WebApplicationException(e, Response.Status.INTERNAL_SERVER_ERROR); } }
From source file:org.gatein.wsrp.consumer.handlers.MultiPartUtil.java
public static MultiPartResult getMultiPartContent(RequestContext requestContext) { RequestContextWrapper requestContextWrapper = new RequestContextWrapper(requestContext); MultiPartResult result = null;//from www . j av a2 s . com try { if (FileUpload.isMultipartContent(requestContextWrapper)) { result = new MultiPartResult(); // content is multipart, we need to parse it (that includes form parameters) FileUpload upload = new FileUpload(); FileItemIterator iter = upload.getItemIterator(requestContextWrapper); List<UploadContext> uploadContexts = new ArrayList<UploadContext>(7); List<NamedString> formParameters = new ArrayList<NamedString>(7); while (iter.hasNext()) { FileItemStream item = iter.next(); InputStream stream = item.openStream(); if (!item.isFormField()) { String contentType = item.getContentType(); if (log.isDebugEnabled()) { log.debug("File field " + item.getFieldName() + " with file name " + item.getName() + " and content type " + contentType + " detected."); } BufferedInputStream bufIn = new BufferedInputStream(stream); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BufferedOutputStream bos = new BufferedOutputStream(baos); int c = bufIn.read(); while (c != -1) { bos.write(c); c = bufIn.read(); } bos.flush(); baos.flush(); bufIn.close(); bos.close(); final byte[] uploadData = baos.toByteArray(); if (uploadData.length != 0) { UploadContext uploadContext = WSRPTypeFactory.createUploadContext(contentType, uploadData); List<NamedString> mimeAttributes = new ArrayList<NamedString>(2); String value = FileUpload.FORM_DATA + ";" + " name=\"" + item.getFieldName() + "\";" + " filename=\"" + item.getName() + "\""; NamedString mimeAttribute = WSRPTypeFactory .createNamedString(FileUpload.CONTENT_DISPOSITION, value); mimeAttributes.add(mimeAttribute); mimeAttribute = WSRPTypeFactory.createNamedString(FileUpload.CONTENT_TYPE, item.getContentType()); mimeAttributes.add(mimeAttribute); uploadContext.getMimeAttributes().addAll(mimeAttributes); uploadContexts.add(uploadContext); } else { log.debug("Ignoring empty file " + item.getName()); } } else { NamedString formParameter = WSRPTypeFactory.createNamedString(item.getFieldName(), Streams.asString(stream)); formParameters.add(formParameter); } } result.getUploadContexts().addAll(uploadContexts); result.getFormParameters().addAll(formParameters); } } catch (Exception e) { log.debug("Couldn't create UploadContext", e); } return result; }
From source file:org.geowe.server.upload.FileUploadServlet.java
@Override public void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { final ServletFileUpload upload = new ServletFileUpload(); response.setContentType("text/plain; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); upload.setFileSizeMax(MAX_FILE_SIZE); upload.setSizeMax(MAX_FILE_SIZE);/* w ww .j ava2 s . c o m*/ try { final FileItemIterator iter = upload.getItemIterator(request); final StringWriter writer = new StringWriter(); while (iter.hasNext()) { final FileItemStream item = iter.next(); IOUtils.copy(item.openStream(), writer, "UTF-8"); final String content = writer.toString(); response.setStatus(HttpStatus.SC_OK); response.getWriter().printf(content); } } catch (SizeLimitExceededException e) { response.setStatus(HttpStatus.SC_REQUEST_TOO_LONG); response.getWriter().printf(HttpStatus.SC_REQUEST_TOO_LONG + ":" + e.getMessage()); LOG.error(e.getMessage()); } catch (Exception e) { response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR); response.getWriter().printf(HttpStatus.SC_INTERNAL_SERVER_ERROR + ": ups! something went wrong."); LOG.error(e.getMessage()); } }