Example usage for org.apache.commons.fileupload.servlet FileCleanerCleanup getFileCleaningTracker

List of usage examples for org.apache.commons.fileupload.servlet FileCleanerCleanup getFileCleaningTracker

Introduction

In this page you can find the example usage for org.apache.commons.fileupload.servlet FileCleanerCleanup getFileCleaningTracker.

Prototype

public static FileCleaningTracker getFileCleaningTracker(ServletContext pServletContext) 

Source Link

Document

Returns the instance of FileCleaningTracker , which is associated with the given ServletContext .

Usage

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);
}