wac.getServletContext().setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); CommonsMultipartResolver resolver = new CommonsMultipartResolver(wac.getServletContext()); assertTrue(resolver.getFileItemFactory().getRepository().getAbsolutePath().endsWith("mytemp"));
wac.getServletContext().setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); CommonsMultipartResolver resolver = new CommonsMultipartResolver(wac.getServletContext()); assertTrue(resolver.getFileItemFactory().getRepository().getAbsolutePath().endsWith("mytemp"));
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(); }
/** * The location used to temporarily store files that are larger * than the size threshold. */ public String getRepository() { return itemFactory.getRepository().getAbsolutePath(); }
protected FileItemFactory createFactoryForDiskBasedFileItems(File temporaryDirectory) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(temporaryDirectory); logger.debug("Using repository {} for file upload", factory.getRepository()); return factory; }
public FileItem createItem(String fieldName, String contentType, boolean isFormField, String fileName) { try { final DiskFileItem item = (DiskFileItem) super.createItem(fieldName, contentType, isFormField, fileName); // Needed to make sure the File object is created. item.getOutputStream(); item.getStoreLocation().deleteOnExit(); return item; } catch (IOException e) { String path = System.getProperty("java.io.tmpdir"); if (super.getRepository() != null) { path = super.getRepository().getPath(); } throw new RuntimeException("Unable to create a temporary file for saving the attachment. " + "Do you have write access on " + path + "?"); } } };
factory.setSizeThreshold(thresholdSize); factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); LOGGER.debug("Disk File Item factory repository {}", factory.getRepository().getAbsolutePath());
OctetstreamMultipartFile file = new OctetstreamMultipartFile(sFieldName,contentType,i,this.getFileItemFactory().getRepository(),this.getFileItemFactory().getSizeThreshold(),sFileName); Streams.copy(getOctetStream(i,request.getInputStream()), file.getOutputStream(), true);