FileUpload fileUpload = new FileUpload(fileItemFactory); RequestContext requestContext = new MockHttpOutputMessageRequestContext(outputMessage); List<FileItem> items = fileUpload.parseRequest(requestContext); assertEquals(6, items.size()); FileItem item = items.get(0);
/** * Determine an appropriate FileUpload instance for the given encoding. * <p>Default implementation returns the shared FileUpload instance * if the encoding matches, else creates a new FileUpload instance * with the same configuration other than the desired encoding. * @param encoding the character encoding to use * @return an appropriate FileUpload instance. */ protected FileUpload prepareFileUpload(@Nullable String encoding) { FileUpload fileUpload = getFileUpload(); FileUpload actualFileUpload = fileUpload; // Use new temporary FileUpload instance if the request specifies // its own encoding that does not match the default encoding. if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) { actualFileUpload = newFileUpload(getFileItemFactory()); actualFileUpload.setSizeMax(fileUpload.getSizeMax()); actualFileUpload.setFileSizeMax(fileUpload.getFileSizeMax()); actualFileUpload.setHeaderEncoding(encoding); } return actualFileUpload; }
public FileItemIterator getItemIterator(IHTTPSession session) throws FileUploadException, IOException { return super.getItemIterator(new NanoHttpdContext(session)); }
/** * Parse the given servlet request, resolving its multipart elements. * @param request the request to parse * @return the parsing result * @throws MultipartException if multipart resolution failed. */ protected MultipartParsingResult parseRequest(HttpServletRequest request) throws MultipartException { String encoding = determineEncoding(request); FileUpload fileUpload = prepareFileUpload(encoding); try { List<FileItem> fileItems = ((ServletFileUpload) fileUpload).parseRequest(request); return parseFileItems(fileItems, encoding); } catch (FileUploadBase.SizeLimitExceededException ex) { throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex); } catch (FileUploadBase.FileSizeLimitExceededException ex) { throw new MaxUploadSizeExceededException(fileUpload.getFileSizeMax(), ex); } catch (FileUploadException ex) { throw new MultipartException("Failed to parse multipart servlet request", ex); } }
protected FileUpload prepareFileUpload(String encoding) { FileUpload fileUpload = getFileUpload(); FileUpload actualFileUpload = fileUpload; if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) { actualFileUpload = newFileUpload(new StreamFileItemFactory()); actualFileUpload.setSizeMax(fileUpload.getSizeMax()); actualFileUpload.setHeaderEncoding(encoding); } return actualFileUpload; } }
protected FileUpload createFileUploadInstance() { return new FileUpload(); }
public HttpFileUploadRequestWrapper(HttpServletRequest pRequest, File pUploadDir, long pMaxSize) throws ServletException { super(pRequest); DiskFileItemFactory factory = new DiskFileItemFactory( 128 * 1024, // 128 KByte new File(pUploadDir.getAbsolutePath()) ); FileUpload upload = new FileUpload(factory); upload.setSizeMax(pMaxSize); // TODO: Defer request parsing?? try { //noinspection unchecked List<FileItem> items = upload.parseRequest(new ServletRequestContext(pRequest)); for (FileItem item : items) { if (item.isFormField()) { processFormField(item.getFieldName(), item.getString()); } else { processeFile(item); } } } catch (FileUploadBase.SizeLimitExceededException e) { throw new FileSizeExceededException(e); } catch (org.apache.commons.fileupload.FileUploadException e) { throw new FileUploadException(e); } }
/** * Parse the given request, resolving its multipart elements. * * @param request the request to parse. * * @return the parsing result. * * @throws MultipartException if multipart resolution failed. */ private MultipartParsingResult parseRequest(HttpRequest request) throws MultipartException { String encoding = determineEncoding(request); FileUpload fileUpload = prepareFileUpload(encoding); try { RequestBody body = request.getBody(); Assert.notNull(body, "The body cannot be null."); List<FileItem> fileItems = fileUpload.parseRequest(new BodyContext(body)); return parseFileItems(fileItems, encoding); } catch (FileUploadBase.SizeLimitExceededException ex) { throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex); } catch (FileUploadBase.FileSizeLimitExceededException ex) { throw new MaxUploadSizeExceededException(fileUpload.getFileSizeMax(), ex); } catch (FileUploadException ex) { throw new MultipartException("Failed to parse multipart servlet request.", ex); } }
@SuppressWarnings("squid:S2095") public static Multipart read(final MediaType contentType, final int contentLength, final InputStream inputStream) throws IOException { final FileUpload fileUpload = new FileUpload(); fileUpload.setFileItemFactory(new DiskFileItemFactory()); final List<FileItem> fileItems; try { fileItems = fileUpload.parseRequest(new UploadRequest(contentType, contentLength, inputStream)); } catch (final FileUploadException ex) { throw new IOException("Error parsing form: " + ex.getMessage(), ex); } final Multipart result = new Multipart(contentType); for (final FileItem fileItem : fileItems) { if (fileItem.isFormField()) { result.param(new Part(fileItem.getFieldName(), fileItem.getString())); } else { result.param(new Part(fileItem.getFieldName(), fileItem.getName(), fileItem.getInputStream())); } } return result; }
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException { String encoding = determineEncoding(request); FileUpload fileUpload = prepareFileUpload(encoding); try { List fileItems = ((ServletFileUpload) fileUpload).parseRequest(request); MultipartParsingResult parsingResult = parseFileItems(fileItems, encoding); return new DefaultMultipartHttpServletRequest( request, parsingResult.getMultipartFiles(), parsingResult.getMultipartParameters(), parsingResult.getMultipartParameterContentTypes()); } catch (FileUploadBase.SizeLimitExceededException ex) { throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex); } catch (FileUploadException ex) { throw new MultipartException("Could not parse multipart servlet request", ex); } }
private void doTestWithApplicationContext(boolean lazy) throws Exception { StaticWebApplicationContext wac = new StaticWebApplicationContext(); wac.setServletContext(new MockServletContext()); wac.getServletContext().setAttribute(WebUtils.TEMP_DIR_CONTEXT_ATTRIBUTE, new File("mytemp")); wac.refresh(); MockCommonsMultipartResolver resolver = new MockCommonsMultipartResolver(); resolver.setMaxUploadSize(1000); resolver.setMaxInMemorySize(100); resolver.setDefaultEncoding("enc"); if (lazy) { resolver.setResolveLazily(false); } resolver.setServletContext(wac.getServletContext()); assertEquals(1000, resolver.getFileUpload().getSizeMax()); assertEquals(100, resolver.getFileItemFactory().getSizeThreshold()); assertEquals("enc", resolver.getFileUpload().getHeaderEncoding()); assertTrue(resolver.getFileItemFactory().getRepository().getAbsolutePath().endsWith("mytemp")); MockHttpServletRequest originalRequest = new MockHttpServletRequest(); originalRequest.setMethod("POST"); originalRequest.setContentType("multipart/form-data"); originalRequest.addHeader("Content-type", "multipart/form-data"); originalRequest.addParameter("getField", "getValue"); assertTrue(resolver.isMultipart(originalRequest)); MultipartHttpServletRequest request = resolver.resolveMultipart(originalRequest); doTestParameters(request); doTestFiles(request); doTestBinding(resolver, originalRequest, request); wac.close(); }
public static List<FileItem> parseUpload(FileUpload upload, byte[] bytes, String contentType) throws FileUploadException { final HttpServletRequest request = new MockHttpServletRequest(bytes, contentType); List<FileItem> fileItems = upload.parseRequest(new ServletRequestContext(request)); return fileItems; }
fileupload.setSizeMax(uploadMaxSize); List<FileItem> list = fileupload.parseRequest(reqContext); if (list.size() > 0) { LOG.info("Loaded " + list.size() + " uploaded files");
@SuppressWarnings("unchecked") Map<String, Object[]> getMultipartParameterMap(final FileUpload fileUpload, final RequestContext requestContext) { try { final String encoding = requestContext.getCharacterEncoding(); fileUpload.setHeaderEncoding(encoding); final List<FileItem> items = fileUpload .parseRequest(requestContext); // Fieldごとにパラメータを集める final Map<String, Object[]> parameterMap = toParameterMap(encoding, items); return parameterMap; } catch (final FileUploadException e) { final String messageCode; final Object[] args; if (e instanceof SizeLimitExceededException) { final SizeLimitExceededException sle = (SizeLimitExceededException) e; messageCode = "ECUB0202"; args = new Object[] { sle.getPermittedSize(), sle.getActualSize() }; } else { messageCode = "ECUB0201"; args = new Object[] { e }; } throw new RequestParseException(format(messageCode, args), e); } catch (final IOException e) { throw new RequestParseException(e); } }
final FileUpload upload = new FileUpload(); // // some actions // final int size = getFileSize(upload.getElement())
/** * Set the maximum allowed size (in bytes) before an upload gets rejected. * -1 indicates no limit (the default). * @param maxUploadSize the maximum upload size allowed * @see org.apache.commons.fileupload.FileUploadBase#setSizeMax */ public void setMaxUploadSize(long maxUploadSize) { this.fileUpload.setSizeMax(maxUploadSize); }
/** * * @param event * @throws Exception */ public void listener(UploadEvent event) throws Exception{ UploadItem item = event.getUploadItem(); FileUpload file = new FileUpload(); file.setLength(item.getData().length); file.setFile(item.getData()); file.setName(item.getFileName()); files.add(file); } /** * * @return */public String clearUploadData() { files.clear(); setUploadsAvailable(1); return null; }
/** * Determine the default encoding to use for parsing requests. * @see #setDefaultEncoding */ protected String getDefaultEncoding() { String encoding = getFileUpload().getHeaderEncoding(); if (encoding == null) { encoding = WebUtils.DEFAULT_CHARACTER_ENCODING; } return encoding; }
/** * Set the default character encoding to use for parsing requests, * to be applied to headers of individual parts and to form fields. * Default is ISO-8859-1, according to the Servlet spec. * <p>If the request specifies a character encoding itself, the request * encoding will override this setting. This also allows for generically * overriding the character encoding in a filter that invokes the * {@code ServletRequest.setCharacterEncoding} method. * @param defaultEncoding the character encoding to use * @see javax.servlet.ServletRequest#getCharacterEncoding * @see javax.servlet.ServletRequest#setCharacterEncoding * @see WebUtils#DEFAULT_CHARACTER_ENCODING * @see org.apache.commons.fileupload.FileUploadBase#setHeaderEncoding */ public void setDefaultEncoding(String defaultEncoding) { this.fileUpload.setHeaderEncoding(defaultEncoding); }
VerticalPanel vpanel = new VerticalPanel(); String title = "Select a .gms file to open:"; final FileUpload upload = new FileUpload(); upload.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { loadContents(event.getNativeEvent()); fileName = upload.getFilename();