List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload getItemIterator
public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException, IOException
From source file:org.tangram.components.servlet.ServletRequestParameterAccess.java
/** * Weak visibility to avoid direct instanciation. */// w ww.j a v a 2 s. c om @SuppressWarnings("unchecked") ServletRequestParameterAccess(HttpServletRequest request, long uploadFileMaxSize) { final String reqContentType = request.getContentType(); LOG.debug("() uploadFileMaxSize={} request.contentType={}", uploadFileMaxSize, reqContentType); if (StringUtils.isNotBlank(reqContentType) && reqContentType.startsWith("multipart/form-data")) { ServletFileUpload upload = new ServletFileUpload(); upload.setFileSizeMax(uploadFileMaxSize); try { for (FileItemIterator itemIterator = upload.getItemIterator(request); itemIterator.hasNext();) { FileItemStream item = itemIterator.next(); String fieldName = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { String[] value = parameterMap.get(item.getFieldName()); int i = 0; if (value == null) { value = new String[1]; } else { String[] newValue = new String[value.length + 1]; System.arraycopy(value, 0, newValue, 0, value.length); i = value.length; value = newValue; } // if value[i] = Streams.asString(stream, "UTF-8"); LOG.debug("() request parameter {}='{}'", fieldName, value[0]); parameterMap.put(item.getFieldName(), value); } else { try { LOG.debug("() item {} :{}", item.getName(), item.getContentType()); final byte[] bytes = IOUtils.toByteArray(stream); if (bytes.length > 0) { originalNames.put(fieldName, item.getName()); blobs.put(fieldName, bytes); } // if } catch (IOException ex) { LOG.error("()", ex); if (ex.getCause() instanceof FileUploadBase.FileSizeLimitExceededException) { throw new RuntimeException(ex.getCause().getMessage()); // NOPMD we want to lose parts of our stack trace! } // if } // try/catch } // if } // for } catch (FileUploadException | IOException ex) { LOG.error("()", ex); } // try/catch } else { parameterMap = request.getParameterMap(); } // if }
From source file:org.tangram.spring.StreamingMultipartResolver.java
@Override public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException { ServletFileUpload upload = new ServletFileUpload(); upload.setFileSizeMax(maxUploadSize); String encoding = determineEncoding(request); Map<String, String[]> multipartParameters = new HashMap<>(); MultiValueMap<String, MultipartFile> multipartFiles = new LinkedMultiValueMap<>(); Map<String, String> multipartFileContentTypes = new HashMap<>(); try {//ww w . j a v a 2s .c o m FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { String value = Streams.asString(stream, encoding); String[] curParam = multipartParameters.get(name); if (curParam == null) { // simple form field multipartParameters.put(name, new String[] { value }); } else { // array of simple form fields String[] newParam = StringUtils.addStringToArray(curParam, value); multipartParameters.put(name, newParam); } } else { try { MultipartFile file = new StreamingMultipartFile(item); multipartFiles.add(name, file); multipartFileContentTypes.put(name, file.getContentType()); } catch (final IOException e) { LOG.warn("({})", e.getCause().getMessage(), e); MultipartFile file = new MultipartFile() { @Override public String getName() { return ""; } @Override public String getOriginalFilename() { return e.getCause().getMessage(); } @Override public String getContentType() { return ERROR; } @Override public boolean isEmpty() { return true; } @Override public long getSize() { return 0L; } @Override public byte[] getBytes() throws IOException { return new byte[0]; } @Override public InputStream getInputStream() throws IOException { return null; } @Override public void transferTo(File file) throws IOException, IllegalStateException { throw new UnsupportedOperationException("NYI", e); } }; multipartFiles.add(name, file); multipartFileContentTypes.put(name, file.getContentType()); } // try/catch } // if } // while } catch (IOException | FileUploadException e) { throw new MultipartException("Error uploading a file", e); } // try/catch return new DefaultMultipartHttpServletRequest(request, multipartFiles, multipartParameters, multipartFileContentTypes); }
From source file:org.vosao.servlet.FileUploadServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //logger.info("File upload..."); ServletFileUpload upload = new ServletFileUpload(); upload.setFileSizeMax(MAX_SIZE);// ww w . j a v a2 s . c om upload.setHeaderEncoding("UTF-8"); String message = null; Map<String, String> parameters = new HashMap<String, String>(); List<UploadItem> uploadItems = new ArrayList<UploadItem>(); try { FileItemIterator iter; try { iter = upload.getItemIterator(request); FileItemStream imageFileItem = null; String folder = null; InputStream stream = null; InputStream filestream = null; byte[] fileData = null; parameters.put(IMAGE_UPLOAD_PAGE_ID, VosaoContext.getInstance().getSession().getString(IMAGE_UPLOAD_PAGE_ID)); if (request.getParameter("CKEditorFuncNum") != null) { ckeditorFuncNum = request.getParameter("CKEditorFuncNum"); } while (iter.hasNext()) { FileItemStream item = iter.next(); stream = item.openStream(); if (item.isFormField()) { parameters.put(item.getFieldName(), Streams.asString(stream, "UTF-8")); } else { UploadItem uploadItem = new UploadItem(); uploadItem.item = item; uploadItem.data = StreamUtil.readFileStream(stream); uploadItems.add(uploadItem); } } //logger.info(parameters.toString()); for (UploadItem item : uploadItems) { message = processFile(item.item, item.data, parameters); } } catch (FileUploadException e) { logger.error(Messages.get("request_parsing_error")); throw new UploadException(Messages.get("request_parsing_error")); } } catch (UploadException e) { message = createMessage("error", e.getMessage()); logger.error(message); } if (isCKeditorUpload(parameters)) { response.setContentType("text/html"); } else { response.setContentType("text/plain"); } response.setStatus(200); response.getWriter().write(message); }
From source file:org.vosao.servlet.FormSendServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String message = null;/*from w ww . j av a2 s. c o m*/ Map<String, String> parameters = new HashMap<String, String>(); List<FileItem> files = new ArrayList<FileItem>(); try { if (request.getContentType().startsWith("multipart/form-data")) { ServletFileUpload upload = new ServletFileUpload(); upload.setFileSizeMax(MAX_SIZE); upload.setHeaderEncoding("UTF-8"); FileItemIterator iter; try { iter = upload.getItemIterator(request); InputStream stream = null; while (iter.hasNext()) { FileItemStream item = iter.next(); stream = item.openStream(); if (item.isFormField()) { parameters.put(item.getFieldName(), Streams.asString(stream, "UTF-8")); } else { files.add(new FileItem(item, StreamUtil.readFileStream(stream))); } } } catch (FileUploadException e) { logger.error(e.getMessage()); throw new UploadException(Messages.get("request_parsing_error")); } } else { for (Object key : request.getParameterMap().keySet()) { String paramName = (String) key; parameters.put(paramName, request.getParameter(paramName)); } } message = processForm(parameters, files, request); } catch (UploadException e) { message = createMessage("error", e.getMessage()); logger.error(message); } catch (Exception e) { message = createMessage("error", e.getMessage()); logger.error(message); e.printStackTrace(); } response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); response.setStatus(200); response.getWriter().write(message); }
From source file:org.wahlzeit.servlets.MainServlet.java
/** * Searches for files in the request and puts them in the resulting map with the key "fileName". When a file is * found, you can access its path by searching for elements with the key "fileName". *//* w w w . j a va 2 s . c om*/ protected Map getMultiPartRequestArgs(HttpServletRequest request, UserSession us) throws IOException, ServletException { Map<String, String> result = new HashMap<String, String>(); result.putAll(request.getParameterMap()); try { ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iterator = upload.getItemIterator(request); while (iterator.hasNext()) { FileItemStream fileItemStream = iterator.next(); String filename = fileItemStream.getName(); if (!fileItemStream.isFormField()) { InputStream inputStream = fileItemStream.openStream(); Image image = getImage(inputStream); User user = (User) us.getClient(); user.setUploadedImage(image); result.put("fileName", filename); log.config( LogBuilder.createSystemMessage().addParameter("Uploaded image", filename).toString()); } else { String key = fileItemStream.getFieldName(); InputStream is = fileItemStream.openStream(); String value = CharStreams.toString(new InputStreamReader(is, Charsets.UTF_8)); result.put(key, value); log.config(LogBuilder.createSystemMessage().addParameter("Key of uploaded parameter", key) .addParameter("value", value).toString()); } } } catch (Exception ex) { throw new ServletException(ex); } return result; }
From source file:org.waterforpeople.mapping.app.web.PhotoUpload.java
public void doPost(HttpServletRequest req, HttpServletResponse resp) { Properties props = System.getProperties(); String bucket = props.getProperty("s3bucket"); ServletFileUpload upload = new ServletFileUpload(); try {//from ww w . ja v a 2s .c o m FileItemIterator iterator = upload.getItemIterator(req); while (iterator.hasNext()) { FileItemStream item = iterator.next(); InputStream in = item.openStream(); ByteArrayOutputStream out = null; try { in = item.openStream(); out = new ByteArrayOutputStream(); byte[] buffer = new byte[8096]; int size; while ((size = in.read(buffer, 0, buffer.length)) != -1) { out.write(buffer, 0, size); } } catch (IOException e) { log.log(Level.SEVERE, "Could not rotate image", e); } S3Driver s3 = new S3Driver(); s3.uploadFile(bucket, "images/" + item.getName(), out.toByteArray()); } } catch (Exception e) { log.log(Level.SEVERE, "Could not save image", e); } }
From source file:password.pwm.http.PwmRequest.java
public InputStream readFileUploadStream(final String filePartName) throws IOException, ServletException, PwmUnrecoverableException { try {/*from w w w .j av a 2s . c o m*/ if (ServletFileUpload.isMultipartContent(this.getHttpServletRequest())) { // Create a new file upload handler final ServletFileUpload upload = new ServletFileUpload(); // Parse the request for (final FileItemIterator iter = upload.getItemIterator(this.getHttpServletRequest()); iter .hasNext();) { final FileItemStream item = iter.next(); if (filePartName.equals(item.getFieldName())) { return item.openStream(); } } } } catch (Exception e) { LOGGER.error("error reading file upload: " + e.getMessage()); } return null; }
From source file:password.pwm.http.PwmRequest.java
public Map<String, FileUploadItem> readFileUploads(final int maxFileSize, final int maxItems) throws IOException, ServletException, PwmUnrecoverableException { final Map<String, FileUploadItem> returnObj = new LinkedHashMap<>(); try {//from ww w .ja va2 s . c o m if (ServletFileUpload.isMultipartContent(this.getHttpServletRequest())) { final ServletFileUpload upload = new ServletFileUpload(); final FileItemIterator iter = upload.getItemIterator(this.getHttpServletRequest()); while (iter.hasNext() && returnObj.size() < maxItems) { final FileItemStream item = iter.next(); final InputStream inputStream = item.openStream(); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final long length = IOUtils.copyLarge(inputStream, baos, 0, maxFileSize + 1); if (length > maxFileSize) { final ErrorInformation errorInformation = new ErrorInformation(PwmError.ERROR_UNKNOWN, "upload file size limit exceeded"); LOGGER.error(this, errorInformation); respondWithError(errorInformation); return Collections.emptyMap(); } final byte[] outputFile = baos.toByteArray(); final FileUploadItem fileUploadItem = new FileUploadItem(item.getName(), item.getContentType(), outputFile); returnObj.put(item.getFieldName(), fileUploadItem); } } } catch (Exception e) { LOGGER.error("error reading file upload: " + e.getMessage()); } return Collections.unmodifiableMap(returnObj); }
From source file:password.pwm.http.ServletHelper.java
public static String readFileUpload(final HttpServletRequest req, final String filePartName, int maxFileChars) throws IOException, ServletException, PwmUnrecoverableException { try {//w ww.j av a 2 s . c om if (ServletFileUpload.isMultipartContent(req)) { // Create a new file upload handler final ServletFileUpload upload = new ServletFileUpload(); String uploadFile = null; // Parse the request for (final FileItemIterator iter = upload.getItemIterator(req); iter.hasNext();) { final FileItemStream item = iter.next(); if (filePartName.equals(item.getFieldName())) { uploadFile = streamToString(item.openStream(), maxFileChars); } } return uploadFile; } } catch (Exception e) { LOGGER.error("error reading file upload: " + e.getMessage()); } return null; }
From source file:password.pwm.http.ServletHelper.java
public static InputStream readFileUpload(final HttpServletRequest req, final String filePartName) throws IOException, ServletException, PwmUnrecoverableException { try {/*from ww w.j a v a2s .c o m*/ if (ServletFileUpload.isMultipartContent(req)) { // Create a new file upload handler final ServletFileUpload upload = new ServletFileUpload(); // Parse the request for (final FileItemIterator iter = upload.getItemIterator(req); iter.hasNext();) { final FileItemStream item = iter.next(); if (filePartName.equals(item.getFieldName())) { return item.openStream(); } } } } catch (Exception e) { LOGGER.error("error reading file upload: " + e.getMessage()); } return null; }