List of usage examples for org.apache.commons.fileupload.servlet FileCleanerCleanup getFileCleaningTracker
public static FileCleaningTracker getFileCleaningTracker(ServletContext pServletContext)
From source file:org.codelabor.system.file.web.controller.xplatform.FileController.java
@RequestMapping("/upload-test") public String upload(Model model, HttpServletRequest request, ServletContext context) throws Exception { logger.debug("upload-teset"); DataSetList outputDataSetList = new DataSetList(); VariableList outputVariableList = new VariableList(); try {//from w w w.ja v a 2 s . c o m boolean isMultipart = ServletFileUpload.isMultipartContent(request); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug("paramMap: {}", paramMap.toString()); String mapId = (String) paramMap.get("mapId"); RepositoryType acceptedRepositoryType = repositoryType; String requestedRepositoryType = (String) paramMap.get("repositoryType"); if (StringUtils.isNotEmpty(requestedRepositoryType)) { acceptedRepositoryType = RepositoryType.valueOf(requestedRepositoryType); } if (isMultipart) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(sizeThreshold); factory.setRepository(new File(tempRepositoryPath)); factory.setFileCleaningTracker(FileCleanerCleanup.getFileCleaningTracker(context)); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(fileSizeMax); upload.setSizeMax(requestSizeMax); upload.setHeaderEncoding(characterEncoding); upload.setProgressListener(new FileUploadProgressListener()); List<FileItem> fileItemList = upload.parseRequest(request); Iterator<FileItem> iter = fileItemList.iterator(); while (iter.hasNext()) { FileItem fileItem = iter.next(); logger.debug("fileItem: {}", fileItem.toString()); FileDTO fileDTO = null; if (fileItem.isFormField()) { paramMap.put(fileItem.getFieldName(), fileItem.getString(characterEncoding)); } else { if (fileItem.getName() == null || fileItem.getName().length() == 0) continue; // set DTO fileDTO = new FileDTO(); fileDTO.setMapId(mapId); fileDTO.setRealFilename(FilenameUtils.getName(fileItem.getName())); if (acceptedRepositoryType == RepositoryType.FILE_SYSTEM) { fileDTO.setUniqueFilename(uniqueFilenameGenerationService.getNextStringId()); } fileDTO.setContentType(fileItem.getContentType()); fileDTO.setRepositoryPath(realRepositoryPath); logger.debug("fileDTO: {}", fileDTO.toString()); UploadUtils.processFile(acceptedRepositoryType, fileItem.getInputStream(), fileDTO); } if (fileDTO != null) fileManager.insertFile(fileDTO); } } else { } XplatformUtils.setSuccessMessage( messageSource.getMessage("info.success", new Object[] {}, forcedLocale), outputVariableList); logger.debug("success"); } catch (Exception e) { logger.error("fail"); e.printStackTrace(); logger.error(e.getMessage()); throw new XplatformException(messageSource.getMessage("error.failure", new Object[] {}, forcedLocale), e); } model.addAttribute(OUTPUT_DATA_SET_LIST, outputDataSetList); model.addAttribute(OUTPUT_VARIABLE_LIST, outputVariableList); return VIEW_NAME; }
From source file:org.codelabor.system.file.web.servlet.FileUploadServlet.java
/** * ?? .</br> ? ? ?? ? , (: ?) ? mapId . ? * ?? ? repositoryType , ?/*from w w w . j av a 2 s. c o m*/ * org.codelabor.system.file.RepositoryType . * * @param request * * @param response * ? * @throws Exception * */ @SuppressWarnings("unchecked") protected void upload(HttpServletRequest request, HttpServletResponse response) throws Exception { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(this.getServletContext()); FileManager fileManager = (FileManager) ctx.getBean("fileManager"); boolean isMultipart = ServletFileUpload.isMultipartContent(request); Map<String, Object> paramMap = RequestUtils.getParameterMap(request); logger.debug("paramMap: {}", paramMap.toString()); String mapId = (String) paramMap.get("mapId"); RepositoryType acceptedRepositoryType = repositoryType; String requestedRepositoryType = (String) paramMap.get("repositoryType"); if (StringUtils.isNotEmpty(requestedRepositoryType)) { acceptedRepositoryType = RepositoryType.valueOf(requestedRepositoryType); } if (isMultipart) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(sizeThreshold); factory.setRepository(new File(tempRepositoryPath)); factory.setFileCleaningTracker(FileCleanerCleanup.getFileCleaningTracker(this.getServletContext())); ServletFileUpload upload = new ServletFileUpload(factory); upload.setFileSizeMax(fileSizeMax); upload.setSizeMax(requestSizeMax); upload.setHeaderEncoding(characterEncoding); upload.setProgressListener(new FileUploadProgressListener()); try { List<FileItem> fileItemList = upload.parseRequest(request); Iterator<FileItem> iter = fileItemList.iterator(); while (iter.hasNext()) { FileItem fileItem = iter.next(); logger.debug("fileItem: {}", fileItem.toString()); FileDTO fileDTO = null; if (fileItem.isFormField()) { paramMap.put(fileItem.getFieldName(), fileItem.getString(characterEncoding)); } else { if (fileItem.getName() == null || fileItem.getName().length() == 0) continue; // set DTO fileDTO = new FileDTO(); fileDTO.setMapId(mapId); fileDTO.setRealFilename(FilenameUtils.getName(fileItem.getName())); if (acceptedRepositoryType == RepositoryType.FILE_SYSTEM) { fileDTO.setUniqueFilename(getUniqueFilename()); } fileDTO.setContentType(fileItem.getContentType()); fileDTO.setRepositoryPath(realRepositoryPath); logger.debug("fileDTO: {}", fileDTO.toString()); UploadUtils.processFile(acceptedRepositoryType, fileItem.getInputStream(), fileDTO); } if (fileDTO != null) fileManager.insertFile(fileDTO); } } catch (FileUploadException e) { e.printStackTrace(); logger.error(e.getMessage()); throw e; } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage()); throw e; } } else { paramMap = RequestUtils.getParameterMap(request); } try { processParameters(paramMap); } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage()); throw e; } dispatch(request, response, forwardPathUpload); }
From source file:org.eclipse.kapua.app.console.servlet.KapuaHttpServlet.java
@Override public void init() throws ServletException { super.init(); s_logger.info("Servlet {} initialized", getServletName()); ServletContext ctx = getServletContext(); m_fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(ctx); int sizeThreshold = ConsoleSetting.getInstance() .getInt(ConsoleSettingKeys.FILE_UPLOAD_INMEMORY_SIZE_THRESHOLD); File repository = new File(System.getProperty("java.io.tmpdir")); s_logger.info("DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD: {}", DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD); s_logger.info("DiskFileItemFactory: using size threshold of: {}", sizeThreshold); m_diskFileItemFactory = new DiskFileItemFactory(sizeThreshold, repository); m_diskFileItemFactory.setFileCleaningTracker(m_fileCleaningTracker); JAXBContextProvider consoleProvider = new ConsoleJAXBContextProvider(); XmlUtil.setContextProvider(consoleProvider); }
From source file:org.eclipse.kura.web.server.servlet.FileServlet.java
@Override public void init() throws ServletException { super.init(); s_logger.info("Servlet {} initialized", getServletName()); ServletContext ctx = getServletContext(); this.m_fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(ctx); getZipUploadSizeMax();//from ww w . j a v a2s .com getZipUploadCountMax(); int sizeThreshold = getFileUploadInMemorySizeThreshold(); File repository = new File(System.getProperty("java.io.tmpdir")); s_logger.info("DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD: {}", DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD); s_logger.info("DiskFileItemFactory: using size threshold of: {}", sizeThreshold); this.m_diskFileItemFactory = new DiskFileItemFactory(sizeThreshold, repository); this.m_diskFileItemFactory.setFileCleaningTracker(this.m_fileCleaningTracker); }
From source file:org.flowerplatform.core.file.upload.UploadServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { return;//from ww w. jav a 2 s.c om } // entire URL displayed after servlet name ("servlet/upload") -> /uploadId/file_to_upload_name String uploadId = request.getPathInfo().substring(1, request.getPathInfo().lastIndexOf("/")); UploadService uploadService = ((UploadService) CorePlugin.getInstance().getServiceRegistry() .getService("uploadService")); UploadInfo uploadInfo = uploadService.getUploadInfo(uploadId); if (uploadInfo.getTmpLocation() == null) { return; } logger.trace("Uploading {}", uploadInfo); // create temporary upload location file for archive that needs to be unzipped after File file = new File(uploadInfo.getTmpLocation()); if (!file.exists() && uploadInfo.unzipFile()) { file.createNewFile(); } // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(uploadService.getTemporaryUploadDirectory()); factory.setFileCleaningTracker(FileCleanerCleanup.getFileCleaningTracker(request.getServletContext())); // Create a new file upload handler ServletFileUpload uploadHandler = new ServletFileUpload(factory); File uploadedFile = null; try { // Parse the request List<FileItem> items = uploadHandler.parseRequest(request); // Process the uploaded items Iterator<FileItem> it = items.iterator(); while (it.hasNext()) { FileItem item = it.next(); if (!item.isFormField()) { // uploaded file uploadedFile = new File(uploadInfo.unzipFile() ? uploadInfo.getTmpLocation() : (uploadInfo.getTmpLocation() + "/" + item.getName())); item.write(uploadedFile); } } if (uploadInfo.unzipFile()) { // unzip file if requested CoreUtils.unzipArchive(uploadedFile, new File(uploadInfo.getLocation())); } } catch (Exception e) { // something happened or user cancelled the upload while in progress if (uploadedFile != null) { CoreUtils.delete(uploadedFile); } } }
From source file:org.niord.core.repo.RepositoryService.java
/** * Creates a new DiskFileItemFactory. See: * http://commons.apache.org/proper/commons-fileupload/using.html * @return the new DiskFileItemFactory/*from w ww . j a v a2s. co m*/ */ private DiskFileItemFactory newDiskFileItemFactory(ServletContext servletContext) { File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(servletContext); DiskFileItemFactory factory = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, repository); factory.setFileCleaningTracker(fileCleaningTracker); return factory; }
From source file:org.opensubsystems.core.util.servlet.WebParamUtils.java
/** * Parse multipart request and separate regular parameters and files. The * files names are also stored as values of the parameters that are used to * upload them.//ww w . j a v a2s . c om * * @param strLogPrefix - log prefix used for all log output to tie together * the same invocations * @param request - request to get parameter from * @return TwoElementStruct<Map<String, String>, Map<String, FileItem>> - the * first element is map of parameter names and their values. * For uploaded files the files names are also stored here as * values of the parameters that are used to upload them. * If there is only one value of the parameter then the value * is stored directly as String. If there are multiple values * then the values are stored as List<String>. * The second element is map of parameter names and the files * that are uploaded as these parameters. * @throws FileUploadException - an error has occurred */ public static TwoElementStruct<Map<String, Object>, Map<String, FileItem>> parseMultipartRequest( String strLogPrefix, HttpServletRequest request) throws FileUploadException { if (GlobalConstants.ERROR_CHECKING) { assert ServletFileUpload.isMultipartContent(request) : "Specified request is not multipart"; } TwoElementStruct<Map<String, Object>, Map<String, FileItem>> returnValue; FileCleaningTracker fileCleaningTracker; String strTempDir; DiskFileItemFactory factory; Properties prpSettings; int iMaxInMemorySize; int iMaxSize; ServletFileUpload upload; List<FileItem> items; // TODO: Improve: Consider calling // FileUtils.createTemporarySubdirectory // as done in legacy Formature.DocumentTemplateServlet.getFormToProcess // to store the temporary files per session and request strTempDir = FileUtils.getTemporaryDirectory(); prpSettings = Config.getInstance().getProperties(); iMaxInMemorySize = PropertyUtils.getIntPropertyInRange(prpSettings, REQUEST_UPLOAD_MEMORY_THRESHOLD, REQUEST_UPLOAD_MEMORY_THRESHOLD_DEFAULT, "Maximal size of uploaded file that is kept in memory", 1, // 0 is allowed Integer.MAX_VALUE); iMaxSize = PropertyUtils.getIntPropertyInRange(prpSettings, REQUEST_UPLOAD_MAX_SIZE, REQUEST_UPLOAD_MAX_SIZE_DEFAULT, "Maximal size of uploaded file", 1, // 0 is allowed Integer.MAX_VALUE); fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(request.getServletContext()); // Create a factory for disk-based file items factory = new DiskFileItemFactory(); factory.setFileCleaningTracker(fileCleaningTracker); // Set factory constraints factory.setSizeThreshold(iMaxInMemorySize); factory.setRepository(new File(strTempDir)); // Create a new file upload handler upload = new ServletFileUpload(factory); // Set overall request size constraint upload.setSizeMax(iMaxSize); // Parse the request items = upload.parseRequest(request); if ((items != null) && (!items.isEmpty())) { Map mpParams; Map mpFiles; String strParamName; String strValue; Object temp; List<String> lstValues; mpParams = new HashMap(items.size()); mpFiles = new HashMap(); returnValue = new TwoElementStruct(mpParams, mpFiles); for (FileItem item : items) { strParamName = item.getFieldName(); if (item.isFormField()) { strValue = item.getString(); } else { strValue = item.getName(); mpFiles.put(strParamName, item); } temp = mpParams.put(strParamName, strValue); if (temp != null) { // There was already an value so convert it to list of values if (temp instanceof String) { // There are currently exactly two values lstValues = new ArrayList<>(); lstValues.add((String) temp); mpParams.put(strParamName, lstValues); } else { // There are currently more than two values lstValues = (List<String>) temp; } lstValues.add(strValue); } } } else { returnValue = new TwoElementStruct(Collections.emptyMap(), Collections.emptyMap()); } return returnValue; }
From source file:org.primefaces.webapp.filter.FileUploadFilter.java
protected FileItemFactory createFileItemFactory(HttpServletRequest httpServletRequest) { DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); if (thresholdSize != null) { diskFileItemFactory.setSizeThreshold(Integer.valueOf(thresholdSize)); }//from w w w. j a va 2 s. c o m if (uploadDir != null) { diskFileItemFactory.setRepository(new File(uploadDir)); } FileCleaningTracker fileCleaningTracker = FileCleanerCleanup .getFileCleaningTracker(httpServletRequest.getSession().getServletContext()); if (fileCleaningTracker != null) { diskFileItemFactory.setFileCleaningTracker(fileCleaningTracker); } return diskFileItemFactory; }
From source file:org.sc.probro.servlets.IndexCreatorServlet.java
public static DiskFileItemFactory newDiskFileItemFactory(ServletContext context, File repository) { FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(context); DiskFileItemFactory factory = new DiskFileItemFactory(10 * MB, repository); factory.setFileCleaningTracker(fileCleaningTracker); return factory; }
From source file:podd.util.FormHandler.java
@Override public void setServletContext(ServletContext servletContext) { FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(servletContext); fileItemFactory.setFileCleaningTracker(fileCleaningTracker); }