Example usage for org.apache.commons.fileupload.disk DiskFileItem isInMemory

List of usage examples for org.apache.commons.fileupload.disk DiskFileItem isInMemory

Introduction

In this page you can find the example usage for org.apache.commons.fileupload.disk DiskFileItem isInMemory.

Prototype

public boolean isInMemory() 

Source Link

Document

Provides a hint as to whether or not the file contents will be read from memory.

Usage

From source file:com.liferay.portal.editor.fckeditor.receiver.impl.BaseCommandReceiver.java

public void fileUpload(CommandArgument commandArgument, HttpServletRequest request,
        HttpServletResponse response) {//w w  w  . j  av  a 2s. c o m

    InputStream inputStream = null;

    String returnValue = null;

    try {
        ServletFileUpload servletFileUpload = new LiferayFileUpload(
                new LiferayFileItemFactory(UploadServletRequestImpl.getTempDir()), request);

        servletFileUpload
                .setFileSizeMax(PrefsPropsUtil.getLong(PropsKeys.UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE));

        LiferayServletRequest liferayServletRequest = new LiferayServletRequest(request);

        List<FileItem> fileItems = servletFileUpload.parseRequest(liferayServletRequest);

        Map<String, Object> fields = new HashMap<String, Object>();

        for (FileItem fileItem : fileItems) {
            if (fileItem.isFormField()) {
                fields.put(fileItem.getFieldName(), fileItem.getString());
            } else {
                fields.put(fileItem.getFieldName(), fileItem);
            }
        }

        DiskFileItem diskFileItem = (DiskFileItem) fields.get("NewFile");

        String fileName = StringUtil.replace(diskFileItem.getName(), CharPool.BACK_SLASH, CharPool.SLASH);
        String[] fileNameArray = StringUtil.split(fileName, '/');
        fileName = fileNameArray[fileNameArray.length - 1];

        String contentType = diskFileItem.getContentType();

        if (Validator.isNull(contentType) || contentType.equals(ContentTypes.APPLICATION_OCTET_STREAM)) {

            contentType = MimeTypesUtil.getContentType(diskFileItem.getStoreLocation());
        }

        if (diskFileItem.isInMemory()) {
            inputStream = diskFileItem.getInputStream();
        } else {
            inputStream = new ByteArrayFileInputStream(diskFileItem.getStoreLocation(),
                    LiferayFileItem.THRESHOLD_SIZE);
        }

        long size = diskFileItem.getSize();

        returnValue = fileUpload(commandArgument, fileName, inputStream, contentType, size);
    } catch (Exception e) {
        FCKException fcke = null;

        if (e instanceof FCKException) {
            fcke = (FCKException) e;
        } else {
            fcke = new FCKException(e);
        }

        Throwable cause = fcke.getCause();

        returnValue = "203";

        if (cause != null) {
            String causeString = GetterUtil.getString(cause.toString());

            if (causeString.contains("NoSuchFolderException") || causeString.contains("NoSuchGroupException")) {

                returnValue = "204";
            } else if (causeString.contains("ImageNameException")) {
                returnValue = "205";
            } else if (causeString.contains("FileExtensionException")
                    || causeString.contains("FileNameException")) {

                returnValue = "206";
            } else if (causeString.contains("PrincipalException")) {
                returnValue = "207";
            } else if (causeString.contains("ImageSizeException")
                    || causeString.contains("FileSizeException")) {

                returnValue = "208";
            } else if (causeString.contains("SystemException")) {
                returnValue = "209";
            } else {
                throw fcke;
            }
        }

        _writeUploadResponse(returnValue, response);
    } finally {
        StreamUtil.cleanUp(inputStream);
    }

    _writeUploadResponse(returnValue, response);
}

From source file:org.infoglue.calendar.actions.CalendarUploadAbstractAction.java

public File getFile() {
    try {// ww  w. j av  a  2  s  .com
        DiskFileItemFactory factory = new DiskFileItemFactory();
        // Configure the factory here, if desired.
        PortletFileUpload upload = new PortletFileUpload(factory);
        // Configure the uploader here, if desired.
        List fileItems = upload.parseRequest(ServletActionContext.getRequest());
        log.debug("fileItems:" + fileItems.size());
        Iterator i = fileItems.iterator();
        while (i.hasNext()) {
            Object o = i.next();
            DiskFileItem dfi = (DiskFileItem) o;
            log.debug("dfi:" + dfi.getFieldName());
            log.debug("dfi:" + dfi);

            if (!dfi.isFormField()) {
                String fieldName = dfi.getFieldName();
                String fileName = dfi.getName();
                String contentType = dfi.getContentType();
                boolean isInMemory = dfi.isInMemory();
                long sizeInBytes = dfi.getSize();

                log.debug("fieldName:" + fieldName);
                log.debug("fileName:" + fileName);
                log.debug("contentType:" + contentType);
                log.debug("isInMemory:" + isInMemory);
                log.debug("sizeInBytes:" + sizeInBytes);
                File uploadedFile = new File(getTempFilePath() + File.separator + fileName);
                dfi.write(uploadedFile);
                return uploadedFile;
            }

        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    return file;
}

From source file:org.infoglue.calendar.actions.UpdateEventAction.java

/**
 * This is the entry point for the main listing.
 *///w ww  . jav  a  2  s  . c om

public String upload() throws Exception {

    try {
        DiskFileItemFactory factory = new DiskFileItemFactory();
        // Configure the factory here, if desired.
        PortletFileUpload upload = new PortletFileUpload(factory);
        // Configure the uploader here, if desired.
        List fileItems = upload.parseRequest(ServletActionContext.getRequest());
        log.debug("fileItems:" + fileItems.size());
        Iterator i = fileItems.iterator();
        while (i.hasNext()) {
            Object o = i.next();
            DiskFileItem dfi = (DiskFileItem) o;
            log.debug("dfi:" + dfi.getFieldName());
            log.debug("dfi:" + dfi);

            if (!dfi.isFormField()) {
                String fieldName = dfi.getFieldName();
                String fileName = dfi.getName();
                String contentType = dfi.getContentType();
                boolean isInMemory = dfi.isInMemory();
                long sizeInBytes = dfi.getSize();

                log.debug("fieldName:" + fieldName);
                log.debug("fileName:" + fileName);
                log.debug("contentType:" + contentType);
                log.debug("isInMemory:" + isInMemory);
                log.debug("sizeInBytes:" + sizeInBytes);
                File uploadedFile = new File(getTempFilePath() + File.separator + fileName);
                dfi.write(uploadedFile);
            }

        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    log.debug("");
    ResourceController.getController().createResource(this.eventId, this.getAssetKey(),
            this.getFileContentType(), this.getFileFileName(), this.getFile(), getSession());

    return "successUpload";
}

From source file:org.infoglue.cms.util.FileUploadHelper.java

/**
 * Lists the files/* www .j  av  a  2s  . c o m*/
 */

public static void listMultiPartFiles(HttpServletRequest req) {
    try {
        File tempDir = new File("c:/temp/uploads");
        logger.info("tempDir:" + tempDir.exists());

        DiskFileItemFactory factory = new DiskFileItemFactory(1000, tempDir);
        ServletFileUpload upload = new ServletFileUpload(factory);
        if (ServletFileUpload.isMultipartContent((HttpServletRequest) req)) {
            List fileItems = upload.parseRequest((HttpServletRequest) req);
            logger.info("******************************");
            logger.info("fileItems:" + fileItems.size());
            logger.info("******************************");
            req.setAttribute("Test", "Mattias Testar");

            Iterator i = fileItems.iterator();
            while (i.hasNext()) {
                Object o = i.next();
                DiskFileItem dfi = (DiskFileItem) o;
                logger.info("dfi:" + dfi.getFieldName());
                logger.info("dfi:" + dfi);

                if (!dfi.isFormField()) {
                    String fieldName = dfi.getFieldName();
                    String fileName = dfi.getName();
                    String contentType = dfi.getContentType();
                    boolean isInMemory = dfi.isInMemory();
                    long sizeInBytes = dfi.getSize();

                    logger.info("fieldName:" + fieldName);
                    logger.info("fileName:" + fileName);
                    logger.info("contentType:" + contentType);
                    logger.info("isInMemory:" + isInMemory);
                    logger.info("sizeInBytes:" + sizeInBytes);
                    File uploadedFile = new File("c:/temp/uploads/" + fileName);
                    dfi.write(uploadedFile);

                    req.setAttribute(dfi.getFieldName(), uploadedFile.getAbsolutePath());
                }

            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:podd.resources.services.TabImportService.java

/**
 * Creates a Tab transfer object from the Restlet Representation
 * @param entity/* w w  w.j  a v  a 2s. c om*/
 * @return
 */
private Tab createTab(Representation entity) {
    Tab tab = new Tab();
    DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(0); // always write to disk
    RestletFileUpload upload = new RestletFileUpload(factory);
    try {
        List<FileItem> list = upload.parseRepresentation(entity);
        for (FileItem item : list) {
            if (item.getFieldName().equals(PARAM_TAB) && !item.isFormField()) {
                tab.setTabStream(item.getInputStream());
            }
            if (item.getFieldName().equals(PARAM_ATTACHMENT) && !item.isFormField()) {
                DiskFileItem diskFileItem = (DiskFileItem) item;

                if (_DEBUG) {
                    LOGGER.debug("isInMemory = " + diskFileItem.isInMemory() + " diskFileItem exists = "
                            + diskFileItem.getStoreLocation().exists());
                }

                // If the file is not on disk, force to disk
                File copiedFile = FileUploadHelper.writeToDisk(diskFileItem, authenticatedUser);
                if (_DEBUG) {
                    LOGGER.debug("copiedFile = " + copiedFile);
                }

                if (copiedFile != null)
                    tab.addAttachment(copiedFile.getName(), copiedFile);
            }
        }
    } catch (FileUploadException e) {
        getResponse().setStatus(SERVER_ERROR_INTERNAL);
        final String msg = "Error reading form data. ";
        errorHandler.handleException(GENERAL_MESSAGE_ID, "File Initialisation Error", msg, e);
        auditLogHelper.auditAction(ERROR, authenticatedUser, "Tab import Service: " + msg, e.toString());
    } catch (IOException e) {
        getResponse().setStatus(SERVER_ERROR_INTERNAL);
        final String msg = "Error reading file. ";
        errorHandler.handleException(GENERAL_MESSAGE_ID, "File Initalisation Error", msg, e);
        auditLogHelper.auditAction(ERROR, authenticatedUser, "Tab import Service: " + msg, e.toString());

    }
    return tab;
}

From source file:v7db.files.buckets.BucketsServlet.java

private void doFormPost(HttpServletRequest request, HttpServletResponse response, BSONObject bucket)
        throws IOException {
    ObjectId uploadId = new ObjectId();

    BSONObject parameters = new BasicBSONObject();
    List<FileItem> files = new ArrayList<FileItem>();

    if (ServletFileUpload.isMultipartContent(request)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        try {//  w w  w  .  j  a  va2 s.  c o  m
            for (Object _file : upload.parseRequest(request)) {
                FileItem file = (FileItem) _file;
                if (file.isFormField()) {
                    String v = file.getString();
                    parameters.put(file.getFieldName(), v);
                } else {
                    files.add(file);
                }
            }
        } catch (FileUploadException e) {
            throw new IOException(e);
        }

    } else {
        for (Entry<String, String[]> param : request.getParameterMap().entrySet()) {
            String[] v = param.getValue();
            if (v.length == 1)
                parameters.put(param.getKey(), v[0]);
            else
                parameters.put(param.getKey(), v);

        }
    }

    BSONObject result = new BasicBSONObject("_id", uploadId);
    BSONObject uploads = new BasicBSONObject();
    for (FileItem file : files) {
        DiskFileItem f = (DiskFileItem) file;
        // inline until 10KB
        if (f.isInMemory()) {
            uploads.put(f.getFieldName(), storage.inlineOrInsertContentsAndBackRefs(10240, f.get(), uploadId,
                    f.getName(), f.getContentType()));
        } else {
            uploads.put(f.getFieldName(), storage.inlineOrInsertContentsAndBackRefs(10240, f.getStoreLocation(),
                    uploadId, f.getName(), f.getContentType()));
        }
        file.delete();
    }
    result.put("files", uploads);
    result.put("parameters", parameters);

    bucketCollection.update(new BasicDBObject("_id", bucket.get("_id")),
            new BasicDBObject("$push", new BasicDBObject("FormPost.data", result)));

    String redirect = BSONUtils.getString(bucket, "FormPost.redirect");
    // redirect mode
    if (StringUtils.isNotBlank(redirect)) {
        response.sendRedirect(redirect + "?v7_formpost_id=" + uploadId);
        return;
    }
    // echo mode

    // JSON does not work, see https://jira.mongodb.org/browse/JAVA-332
    // response.setContentType("application/json");
    // response.getWriter().write(JSON.serialize(result));
    byte[] bson = BSON.encode(result);
    response.getOutputStream().write(bson);
}