List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload getItemIterator
public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException, IOException
From source file:org.jasig.portal.utils.web.FileUploadLogger.java
public static void logFileUploadInfo(HttpServletRequest request) { final boolean multipartContent = ServletFileUpload.isMultipartContent(request); System.out.println("multipartContent=" + multipartContent); if (!multipartContent) { return;//from w w w . j a v a2 s . c om } DiskFileItemFactory factory = new DiskFileItemFactory(); final ServletFileUpload servletFileUpload = new ServletFileUpload(factory); try { final FileItemIterator itemIterator = servletFileUpload.getItemIterator(request); while (itemIterator.hasNext()) { final FileItemStream next = itemIterator.next(); System.out.println("FileItemStream: " + next.getName()); System.out.println("\t" + next.getContentType()); System.out.println("\t" + next.getFieldName()); final FileItemHeaders headers = next.getHeaders(); if (headers != null) { System.out.println( "\t" + Arrays.toString(Iterators.toArray(headers.getHeaderNames(), String.class))); } } } catch (Exception e) { e.printStackTrace(); } }
From source file:org.javalite.activeweb.HttpSupport.java
/** * Returns a collection of uploaded files from a multi-part port request. * * @param encoding specifies the character encoding to be used when reading the headers of individual part. * When not specified, or null, the request encoding is used. If that is also not specified, or null, * the platform default encoding is used. * @param maxFileSize maximum file size in the upload in bytes. -1 indicates no limit. * * @return a collection of uploaded files from a multi-part port request. *//* www .j a va2 s. c o m*/ protected Iterator<FormItem> uploadedFiles(String encoding, long maxFileSize) { HttpServletRequest req = Context.getHttpRequest(); Iterator<FormItem> iterator; if (req instanceof AWMockMultipartHttpServletRequest) {//running inside a test, and simulating upload. iterator = ((AWMockMultipartHttpServletRequest) req).getFormItemIterator(); } else { if (!ServletFileUpload.isMultipartContent(req)) throw new ControllerException( "this is not a multipart request, be sure to add this attribute to the form: ... enctype=\"multipart/form-data\" ..."); ServletFileUpload upload = new ServletFileUpload(); if (encoding != null) upload.setHeaderEncoding(encoding); upload.setFileSizeMax(maxFileSize); try { FileItemIterator it = upload.getItemIterator(Context.getHttpRequest()); iterator = new FormItemIterator(it); } catch (Exception e) { throw new ControllerException(e); } } return iterator; }
From source file:org.jbpm.designer.server.StencilSetExtensionGeneratorServlet.java
/** * Request parameters are documented in//from www .j a v a 2 s.com * 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; } } } // 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.jbpm.designer.web.server.menu.connector.AbstractConnectorServlet.java
/** * Parse request parameters and files.// ww w.j a v a 2s. 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.jdesktop.wonderland.modules.contentrepo.web.servlet.BrowserServlet.java
protected ContentNode handleUpload(HttpServletRequest request, HttpServletResponse response, ContentNode node, String action) throws ServletException, IOException, ContentRepositoryException { if (!(node instanceof ContentCollection)) { error(request, response, "Not a directory"); return null; }/*from w ww . j ava2s.c o m*/ ContentCollection dir = (ContentCollection) node; /* Check that we have a file upload request */ boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart == false) { logger.warning("[Runner] UPLOAD Bad request"); String message = "Unable to recognize upload request. Please " + "try again."; response.sendError(HttpServletResponse.SC_BAD_REQUEST, message); return null; } // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request try { FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext() == true) { FileItemStream item = iter.next(); String name = item.getName(); InputStream stream = item.openStream(); if (item.isFormField() == false) { ContentResource child = (ContentResource) dir.createChild(name, ContentNode.Type.RESOURCE); File tmp = File.createTempFile("contentupload", "tmp"); RunUtil.writeToFile(stream, tmp); child.put(tmp); tmp.delete(); } } return node; } catch (FileUploadException excp) { /* Log an error to the log and write an error message back */ logger.log(Level.WARNING, "[Runner] UPLOAD Failed", excp); String message = "Unable to upload runner for some reason."; response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); return null; } catch (IOException excp) { /* Log an error to the log and write an error message back */ logger.log(Level.WARNING, "[Runner] UPLOAD Failed", excp); String message = "Unable to upload runner for some reason."; response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); return null; } }
From source file:org.jdesktop.wonderland.modules.servlets.ModuleUploadServlet.java
/** * Handles the HTTP <code>POST</code> method. * @param request servlet request/* ww w.j av a 2 s . c o m*/ * @param response servlet response */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * Create a factory for disk-base file items to handle the request. Also * place the file in add/. */ String redirect = "/installFailed.jsp"; ModuleManager manager = ModuleManager.getModuleManager(); /* Check that we have a file upload request */ boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart == false) { LOGGER.warning("Failed to upload module, isMultipart=false"); String msg = "Unable to recognize upload request. Please try again."; request.setAttribute("errorMessage", msg); RequestDispatcher rd = request.getRequestDispatcher(redirect); rd.forward(request, response); return; } // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request try { FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext() == true) { FileItemStream item = iter.next(); InputStream stream = item.openStream(); if (item.isFormField() == false) { /* * The name given should have a .jar extension. Check this here. If * not, return an error. If so, parse out just the module name. */ String moduleJar = item.getName(); if (moduleJar.endsWith(".jar") == false) { /* Log an error to the log and write an error message back */ LOGGER.warning("Upload is not a jar file " + moduleJar); String msg = "The file " + moduleJar + " needs to be" + " a jar file. Please try again."; request.setAttribute("errorMessage", msg); RequestDispatcher rd = request.getRequestDispatcher(redirect); rd.forward(request, response); return; } String moduleName = moduleJar.substring(0, moduleJar.length() - 4); LOGGER.info("Upload Install module " + moduleName + " with file name " + moduleJar); /* * Write the file a temporary file */ File tmpFile = null; try { tmpFile = File.createTempFile(moduleName + "_tmp", ".jar"); tmpFile.deleteOnExit(); RunUtil.writeToFile(stream, tmpFile); } catch (java.lang.Exception excp) { /* Log an error to the log and write an error message back */ LOGGER.log(Level.WARNING, "Failed to save file", excp); String msg = "Internal error installing the module."; request.setAttribute("errorMessage", msg); RequestDispatcher rd = request.getRequestDispatcher(redirect); rd.forward(request, response); return; } /* Add the new module */ Collection<File> moduleFiles = new LinkedList<File>(); moduleFiles.add(tmpFile); Collection<Module> result = manager.addToInstall(moduleFiles); if (result.isEmpty() == true) { /* Log an error to the log and write an error message back */ LOGGER.warning("Failed to install module " + moduleName); String msg = "Internal error installing the module."; request.setAttribute("errorMessage", msg); RequestDispatcher rd = request.getRequestDispatcher(redirect); rd.forward(request, response); return; } } } } catch (FileUploadException excp) { /* Log an error to the log and write an error message back */ LOGGER.log(Level.WARNING, "File upload failed", excp); String msg = "Failed to upload the file. Please try again."; request.setAttribute("errorMessage", msg); RequestDispatcher rd = request.getRequestDispatcher(redirect); rd.forward(request, response); return; } /* Install all of the modules that are possible */ manager.installAll(); /* If we have reached here, then post a simple message */ LOGGER.info("Added module successfully"); RequestDispatcher rd = request.getRequestDispatcher("/installSuccess.jsp"); rd.forward(request, response); }
From source file:org.jlibrary.web.servlet.JLibraryForwardServlet.java
private void upload(HttpServletRequest req, HttpServletResponse resp) { ServletFileUpload upload = new ServletFileUpload(); boolean sizeExceeded = false; String repositoryName = req.getParameter("repository"); ConfigurationService conf = (ConfigurationService) context.getBean("template"); upload.setSizeMax(conf.getOperationInputBandwidth()); try {//from ww w. ja v a 2s . co m params = new HashMap(); FileItemIterator iter = upload.getItemIterator(req); while (iter.hasNext()) { FileItemStream item = iter.next(); InputStream stream = item.openStream(); if (item.isFormField()) { params.put(item.getFieldName(), Streams.asString(stream)); } else { params.put("filename", item.getName()); uploadDocumentStructure(req, resp, repositoryName, stream); } } } catch (SizeLimitExceededException e) { sizeExceeded = true; if (repositoryName == null || "".equals(repositoryName)) { repositoryName = (String) params.get("repository"); } logErrorAndForward(req, resp, repositoryName, e, "Bandwith exceeded"); } catch (FileUploadException e) { logErrorAndForward(req, resp, repositoryName, e, "There was a problem uploading the document."); } catch (IOException e) { logErrorAndForward(req, resp, repositoryName, e, "There was a problem uploading the document."); } catch (Exception t) { logErrorAndForward(req, resp, repositoryName, t, "There was a problem uploading the document."); } }
From source file:org.jolokia.osgish.upload.UploadServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (!ServletFileUpload.isMultipartContent(request)) { throw new ServletException("Request has no multipart content"); }/* ww w . j ava 2 s . com*/ // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request FileItemIterator iter; try { iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); InputStream in = item.openStream(); if (item.isFormField()) { throw new ServletException("A Form field is not expected here"); } else { File dest = new File(uploadDirectory, item.getName()); try { OutputStream out = new FileOutputStream(dest); copy(in, out); LogService log = (LogService) logTracker.getService(); if (log != null) { log.log(LogService.LOG_INFO, "Uploaded " + dest.getName() + " (size: " + dest.length() + ")"); } // TODO: Return internal location/url of this bundle } catch (IOException exp) { throw new ServletException( "Cannot copy uploaded file to " + dest.getAbsolutePath() + ": " + exp, exp); } } } } catch (FileUploadException e) { throw new ServletException("Upload failed: " + e, e); } response.setStatus(HttpServletResponse.SC_OK); }
From source file:org.jumpmind.symmetric.web.FileSyncPushUriHandler.java
public void handle(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException, FileUploadException { String nodeId = ServletUtils.getParameter(req, WebConstants.NODE_ID); if (StringUtils.isBlank(nodeId)) { ServletUtils.sendError(res, HttpServletResponse.SC_BAD_REQUEST, "Node must be specified"); return;//from ww w . j ava 2 s. c o m } else if (!ServletFileUpload.isMultipartContent(req)) { ServletUtils.sendError(res, HttpServletResponse.SC_BAD_REQUEST, "We only handle multipart requests"); return; } else { log.debug("File sync push request received from {}", nodeId); } ServletFileUpload upload = new ServletFileUpload(); // Parse the request FileItemIterator iter = upload.getItemIterator(req); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); if (!item.isFormField()) { log.debug("Processing upload file field " + name + " with file name " + item.getName() + " detected."); engine.getFileSyncService().loadFilesFromPush(nodeId, item.openStream(), res.getOutputStream()); } } res.flushBuffer(); }
From source file:org.kaaproject.avro.ui.sandbox.services.FileUploadServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletFileUpload upload = new ServletFileUpload(); try {//from w w w. ja v a2s .co m FileItemIterator iterator = upload.getItemIterator(request); if (iterator.hasNext()) { FileItemStream item = iterator.next(); String name = item.getFieldName(); logger.debug("Uploading file '{}' with item name '{}'", item.getName(), name); InputStream stream = item.openStream(); ByteArrayOutputStream out = new ByteArrayOutputStream(); Streams.copy(stream, out, true); byte[] data = out.toByteArray(); response.setStatus(HttpServletResponse.SC_OK); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); response.getWriter().print(new String(data)); response.flushBuffer(); } else { logger.error("No file found in post request!"); throw new RuntimeException("No file found in post request!"); } } catch (Exception e) { logger.error("Unexpected error in FileUploadServlet.doPost: ", e); throw new RuntimeException(e); } }