Example usage for org.apache.commons.fileupload.portlet PortletFileUpload parseRequest

List of usage examples for org.apache.commons.fileupload.portlet PortletFileUpload parseRequest

Introduction

In this page you can find the example usage for org.apache.commons.fileupload.portlet PortletFileUpload parseRequest.

Prototype

public List  parseRequest(ActionRequest request) throws FileUploadException 

Source Link

Document

Processes an <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a> compliant <code>multipart/form-data</code> stream.

Usage

From source file:it.eng.spagobi.commons.utilities.PortletUtilities.java

/**
 * Gets the first uploaded file from a portlet request. This method creates a new file upload handler, 
 * parses the request, processes the uploaded items and then returns the first file as an
 * <code>UploadedFile</code> object.
 * @param portletRequest The input portlet request
 * @return   The first uploaded file object.
 *///  www . java  2  s.  c om
public static UploadedFile getFirstUploadedFile(PortletRequest portletRequest) {
    UploadedFile uploadedFile = null;
    try {

        DiskFileItemFactory factory = new DiskFileItemFactory();
        //       Create a new file upload handler
        PortletFileUpload upload = new PortletFileUpload(factory);

        //       Parse the request
        List /* FileItem */ items = upload.parseRequest((ActionRequest) portletRequest);

        //       Process the uploaded items
        Iterator iter = items.iterator();
        boolean endLoop = false;
        while (iter.hasNext() && !endLoop) {
            FileItem item = (FileItem) iter.next();

            if (item.isFormField()) {
                //serviceRequest.setAttribute(item.getFieldName(), item.getString());
            } else {
                uploadedFile = new UploadedFile();
                uploadedFile.setFileContent(item.get());
                uploadedFile.setFieldNameInForm(item.getFieldName());
                uploadedFile.setSizeInBytes(item.getSize());
                uploadedFile.setFileName(item.getName());

                endLoop = true;
            }
        }
    } catch (Exception e) {
        logger.error("Cannot parse multipart request", e);
    }
    return uploadedFile;

}

From source file:com.liferay.util.portlet.PortletRequestUtil.java

public static List<DiskFileItem> testMultipartWithCommonsFileUpload(ActionRequest actionRequest)
        throws Exception {

    // Check if the given request is a multipart request

    boolean multiPartContent = PortletFileUpload.isMultipartContent(actionRequest);

    if (multiPartContent) {
        _log.info("The given request is a multipart request");
    } else {/*ww w .  j  a  va 2  s  .  c  om*/
        _log.info("The given request is NOT a multipart request");
    }

    DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

    PortletFileUpload portletFileUpload = new PortletFileUpload(diskFileItemFactory);

    List<DiskFileItem> diskFileItems = portletFileUpload.parseRequest(actionRequest);

    if (_log.isInfoEnabled()) {
        _log.info("Apache commons upload was able to parse " + diskFileItems.size() + " items");
    }

    for (int i = 0; i < diskFileItems.size(); i++) {
        DiskFileItem diskFileItem = diskFileItems.get(i);

        if (_log.isInfoEnabled()) {
            _log.info("Item " + i + " " + diskFileItem);
        }
    }

    return diskFileItems;
}

From source file:net.formio.portlet.PortletMultipartRequestParser.java

@Override
protected List<FileItem> parseRequest(FileItemFactory fif, long singleFileSizeMax, long totalSizeMax,
        String defaultEncoding) throws FileUploadException {
    final PortletFileUpload upload = new PortletFileUpload(fif);
    configureUpload(upload, singleFileSizeMax, totalSizeMax, defaultEncoding);
    return upload.parseRequest(request);
}

From source file:com.liferay.testmisc.portlet.TestPortlet.java

protected void testMultipartWithCommonsFileUpload(ActionRequest actionRequest) throws Exception {

    boolean multiPartContent = PortletFileUpload.isMultipartContent(actionRequest);

    if (_log.isInfoEnabled()) {
        if (multiPartContent) {
            _log.info("The request is a multipart request");
        } else {/*from ww  w. j a  v  a2  s. co  m*/
            _log.info("The request is not a multipart request");
        }
    }

    DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

    PortletFileUpload portletFileUpload = new PortletFileUpload(diskFileItemFactory);

    List<FileItem> fileItemsList = portletFileUpload.parseRequest(actionRequest);

    if (_log.isInfoEnabled()) {
        _log.info("Apache commons upload was able to parse " + fileItemsList.size() + " items");
    }

    for (int i = 0; i < fileItemsList.size(); i++) {
        FileItem fileItem = fileItemsList.get(i);

        if (_log.isInfoEnabled()) {
            _log.info("Item " + i + " " + fileItem);
        }
    }
}

From source file:de.uhh.l2g.upload.MyCommonsPortletMultipartResolver.java

/**
 * Parses the request./*from   www  .  ja va  2s.co  m*/
 *
 * @param request the request
 * @return the multipart parsing result
 * @throws MultipartException the multipart exception
 */
@Override
protected MultipartParsingResult parseRequest(ActionRequest request) throws MultipartException {

    Integer userId = new Integer(request.getRemoteUser());
    Integer videoId = new Integer(request.getParameter("videoId"));
    long contentLength = request.getContentLength();
    ((UploadDao) getDaoBeanFactory().getBean("uploadDao")).create(userId, contentLength);

    String encoding = determineEncoding(request);
    FileUpload fileUpload = this.prepareFileUpload(encoding);

    try {
        PortletFileUpload pfu = ((PortletFileUpload) fileUpload);
        FileUploadProgressListener fupl = new FileUploadProgressListener(videoId, contentLength);
        pfu.setProgressListener(fupl);
        List<?> fileItems = pfu.parseRequest(request);

        return parseFileItems(fileItems, encoding);
    } catch (FileUploadBase.SizeLimitExceededException ex) {
        throw new MaxUploadSizeExceededException(fileUpload.getSizeMax(), ex);
    } catch (FileUploadException ex) {
        throw new MultipartException("Could not parse multipart portlet request", ex);
    }

}

From source file:com.permeance.utility.scriptinghelper.portlets.ScriptingHelperPortlet.java

public void execute(ActionRequest actionRequest, ActionResponse actionResponse) {
    try {// www  . j  a va  2 s  .  c  o m
        sCheckPermissions(actionRequest);

        String portletId = "_" + PortalUtil.getPortletId(actionRequest) + "_";

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(100 * 1024 * 1024);
        PortletFileUpload upload = new PortletFileUpload(factory);

        FileItem fileUploaded = null;
        List<FileItem> items = upload.parseRequest(actionRequest);
        for (FileItem fi : items) {
            if (fi.isFormField()) {
                actionRequest.setAttribute(fi.getFieldName(), fi.getString());
                if (fi.getFieldName().startsWith(portletId)) {
                    actionRequest.setAttribute(fi.getFieldName().substring(portletId.length()), fi.getString());
                }
            } else {
                fileUploaded = fi;
            }
        }

        String cmd = (String) actionRequest.getAttribute("cmd");
        String language = (String) actionRequest.getAttribute("language");
        String script = (String) actionRequest.getAttribute("script");
        String editorheight = (String) actionRequest.getAttribute("editorheight");
        String themesel = (String) actionRequest.getAttribute("themesel");
        if (language == null) {
            language = getDefaultLanguage();
        }
        if (script == null) {
            script = StringPool.BLANK;
        }
        actionResponse.setRenderParameter("language", language);
        actionResponse.setRenderParameter("script", script);
        actionResponse.setRenderParameter("editorheight", editorheight);
        actionResponse.setRenderParameter("themesel", themesel);

        if ("execute".equals(cmd)) {

            Map<String, Object> portletObjects = ScriptingHelperUtil.getPortletObjects(getPortletConfig(),
                    getPortletContext(), actionRequest, actionResponse);

            UnsyncByteArrayOutputStream unsyncByteArrayOutputStream = new UnsyncByteArrayOutputStream();

            UnsyncPrintWriter unsyncPrintWriter = UnsyncPrintWriterPool.borrow(unsyncByteArrayOutputStream);

            portletObjects.put("out", unsyncPrintWriter);

            _log.info("Executing script");
            ScriptingUtil.exec(null, portletObjects, language, script, StringPool.EMPTY_ARRAY);
            unsyncPrintWriter.flush();
            actionResponse.setRenderParameter("script_output", unsyncByteArrayOutputStream.toString());
        } else if ("save".equals(cmd)) {
            String newscriptname = (String) actionRequest.getAttribute("newscriptname");
            if (newscriptname == null || newscriptname.trim().length() == 0) {
                actionResponse.setRenderParameter("script_trace", "No script name specified to save into!");
                SessionErrors.add(actionRequest, "error");
                return;
            }

            _log.info("Saving new script: " + newscriptname.trim());
            PortletPreferences prefs = actionRequest.getPreferences();
            prefs.setValue("savedscript." + newscriptname.trim(), script);
            prefs.setValue("lang." + newscriptname.trim(), language);
            prefs.store();
        } else if ("saveinto".equals(cmd)) {
            String scriptname = (String) actionRequest.getAttribute("savedscript");
            if (scriptname == null) {
                actionResponse.setRenderParameter("script_trace", "No script specified to save into!");
                SessionErrors.add(actionRequest, "error");
                return;
            }

            _log.info("Saving saved script: " + scriptname);
            PortletPreferences prefs = actionRequest.getPreferences();
            prefs.setValue("savedscript." + scriptname, script);
            prefs.setValue("lang." + scriptname, language);
            prefs.store();
        } else if ("loadfrom".equals(cmd)) {
            String scriptname = (String) actionRequest.getAttribute("savedscript");
            if (scriptname == null) {
                actionResponse.setRenderParameter("script_trace", "No script specified to load from!");
                SessionErrors.add(actionRequest, "error");
                return;
            }
            _log.info("Loading saved script: " + scriptname);
            PortletPreferences prefs = actionRequest.getPreferences();
            language = prefs.getValue("lang." + scriptname, getDefaultLanguage());
            script = prefs.getValue("savedscript." + scriptname, StringPool.BLANK);
            actionResponse.setRenderParameter("language", language);
            actionResponse.setRenderParameter("script", script);
        } else if ("delete".equals(cmd)) {
            String scriptname = (String) actionRequest.getAttribute("savedscript");
            if (scriptname == null) {
                actionResponse.setRenderParameter("script_trace", "No script specified to delete!");
                SessionErrors.add(actionRequest, "error");
                return;
            }
            _log.info("Deleting saved script: " + scriptname);
            PortletPreferences prefs = actionRequest.getPreferences();
            prefs.reset("savedscript." + scriptname);
            prefs.reset("lang." + scriptname);
            prefs.store();
        } else if ("import".equals(cmd)) {
            if (fileUploaded == null) {
                actionResponse.setRenderParameter("script_trace", "No file was uploaded for import!");
                SessionErrors.add(actionRequest, "error");
                return;
            }

            StringBuilder output = new StringBuilder();

            InputStream instream = fileUploaded.getInputStream();
            ZipInputStream zipstream = null;
            try {
                zipstream = new ZipInputStream(instream);
                ZipEntry entry = zipstream.getNextEntry();
                while (entry != null) {
                    String filename = entry.getName();
                    if (filename.contains("/")) {
                        int qs = filename.lastIndexOf("/");
                        if (qs != -1) {
                            filename = filename.substring(qs + 1);
                        }
                    }
                    if (filename.contains("\\")) {
                        int qs = filename.lastIndexOf("\\");
                        if (qs != -1) {
                            filename = filename.substring(qs + 1);
                        }
                    }

                    String ext = StringPool.BLANK;
                    if (filename.length() > 0) {
                        int qs = filename.lastIndexOf(".");
                        if (qs > 0) {
                            ext = filename.substring(qs + 1);
                            filename = filename.substring(0, qs);
                        }
                    }

                    String lang = resolveLanguage(ext);
                    String imscript = getStreamAsString(zipstream, "utf-8", false);

                    if (imscript != null && imscript.length() > 0) {
                        _log.info("Importing script \"" + filename + "\" of type " + lang);
                        output.append("Importing script \"" + filename + "\" of type " + lang + "\n");

                        PortletPreferences prefs = actionRequest.getPreferences();
                        prefs.setValue("savedscript." + filename, imscript);
                        prefs.setValue("lang." + filename, lang);
                        prefs.store();
                    }

                    entry = zipstream.getNextEntry();
                }

                actionResponse.setRenderParameter("script_output", output.toString());
            } finally {
                try {
                    if (zipstream != null) {
                        zipstream.close();
                    }
                } catch (Exception e) {
                }
                try {
                    if (instream != null) {
                        instream.close();
                    }
                } catch (Exception e) {
                }
            }

            _log.info(fileUploaded.getName());
        }
        SessionMessages.add(actionRequest, "success");
    } catch (Exception e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        pw.close();
        actionResponse.setRenderParameter("script_trace", sw.toString());
        _log.error(e);
        SessionErrors.add(actionRequest, e.toString());
    }
}

From source file:it.infn.ct.chipster.Chipster.java

public String[] uploadChipsterSettings(ActionRequest actionRequest, ActionResponse actionResponse,
        String username) {/*from w ww  . j  a  va2  s  . c  o m*/
    String[] CHIPSTER_Parameters = new String[4];
    boolean status;

    // Check that we have a file upload request
    boolean isMultipart = PortletFileUpload.isMultipartContent(actionRequest);

    if (isMultipart) {
        // Create a factory for disk-based file items.
        DiskFileItemFactory factory = new DiskFileItemFactory();

        // Set factory constrains
        File CHIPSTER_Repository = new File("/tmp");
        if (!CHIPSTER_Repository.exists())
            status = CHIPSTER_Repository.mkdirs();
        factory.setRepository(CHIPSTER_Repository);

        // Create a new file upload handler.
        PortletFileUpload upload = new PortletFileUpload(factory);

        try {
            // Parse the request
            List items = upload.parseRequest(actionRequest);
            // Processing items
            Iterator iter = items.iterator();

            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                String fieldName = item.getFieldName();

                DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
                //String timeStamp = dateFormat.format(Calendar.getInstance().getTime());

                // Processing a regular form field
                if (item.isFormField()) {
                    //if (fieldName.equals("chipster_login"))                                
                    //        CHIPSTER_Parameters[0]=item.getString();

                    if (fieldName.equals("chipster_password1"))
                        CHIPSTER_Parameters[1] = item.getString();

                }

                if (fieldName.equals("EnableNotification"))
                    CHIPSTER_Parameters[2] = item.getString();

                if (fieldName.equals("chipster_alias"))
                    CHIPSTER_Parameters[3] = item.getString();

            } // end while
        } catch (FileUploadException ex) {
            Logger.getLogger(Chipster.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(Chipster.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    return CHIPSTER_Parameters;
}

From source file:hu.sztaki.lpds.pgportal.portlets.workflow.WorkflowUploadPortlet.java

@Override
protected void doUpload(ActionRequest request, ActionResponse response) {
    PortletContext context = getPortletContext();
    context.log("[FileUploadPortlet] doUpload() called");

    try {//from   w  w w  .j a  v  a  2  s .  c  o  m
        DiskFileItemFactory factory = new DiskFileItemFactory();
        PortletFileUpload pfu = new PortletFileUpload(factory);
        pfu.setSizeMax(uploadMaxSize); // Maximum upload size
        pfu.setProgressListener((ProgressListener) new FileUploadProgressListener());

        PortletSession ps = request.getPortletSession();
        if (ps.getAttribute("uploads", ps.APPLICATION_SCOPE) == null)
            ps.setAttribute("uploads", new Hashtable<String, ProgressListener>());

        //get the FileItems
        String fieldName = null;

        List fileItems = pfu.parseRequest(request);
        Iterator iter = fileItems.iterator();
        File serverSideFile = null;
        Hashtable h = new Hashtable(); //fileupload
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            // retrieve hidden parameters if item is a form field
            if (item.isFormField()) {
                fieldName = item.getFieldName();
                if ("newGrafName".equals(fieldName))
                    h.put("newGrafName", item.getString());
                if ("newAbstName".equals(fieldName))
                    h.put("newAbstName", item.getString());
                if ("newRealName".equals(fieldName))
                    h.put("newRealName", item.getString());
            } else { // item is not a form field, do file upload
                Hashtable<String, ProgressListener> tmp = (Hashtable<String, ProgressListener>) ps
                        .getAttribute("uploads");//,ps.APPLICATION_SCOPE
                pfu.setProgressListener((ProgressListener) new FileUploadProgressListener());

                String s = item.getName();
                s = FilenameUtils.getName(s);
                ProgressListener pl = pfu.getProgressListener();
                tmp.put(s, pl);
                ps.setAttribute("uploads", tmp);

                String tempDir = System.getProperty("java.io.tmpdir") + "/uploads/" + request.getRemoteUser();
                File f = new File(tempDir);
                if (!f.exists())
                    f.mkdirs();
                serverSideFile = new File(tempDir, s);
                item.write(serverSideFile);
                item.delete();
                context.log("[FileUploadPortlet] - file " + s + " uploaded successfully to " + tempDir);
            }
        }
        // file upload to storage
        try {
            ServiceType st = InformationBase.getI().getService("wfs", "portal", new Hashtable(), new Vector());
            h.put("senderObj", "ZipFileSender");
            h.put("portalURL", PropertyLoader.getInstance().getProperty("service.url"));
            h.put("wfsID", st.getServiceUrl());
            h.put("userID", request.getRemoteUser());

            Hashtable hsh = new Hashtable();
            //                    st = InformationBase.getI().getService("storage", "portal", hsh, new Vector());
            //                    hsh.put("url", "http://localhost:8080/storage");
            st = InformationBase.getI().getService("storage", "portal", hsh, new Vector());
            PortalStorageClient psc = (PortalStorageClient) Class.forName(st.getClientObject()).newInstance();
            psc.setServiceURL(st.getServiceUrl());
            psc.setServiceID("/receiver");
            if (serverSideFile != null)
                psc.fileUpload(serverSideFile, "fileName", h);
        } catch (Exception ex) {
            response.setRenderParameter("full", "error.upload");
            ex.printStackTrace();
            return;
        }
        ps.removeAttribute("uploads", ps.APPLICATION_SCOPE);

    } catch (FileUploadException fue) {
        response.setRenderParameter("full", "error.upload");

        fue.printStackTrace();
        context.log("[FileUploadPortlet] - failed to upload file - " + fue.toString());
        return;
    } catch (Exception e) {
        e.printStackTrace();
        response.setRenderParameter("full", "error.exception");
        context.log("[FileUploadPortlet] - failed to upload file - " + e.toString());
        return;
    }
    response.setRenderParameter("full", "action.succesfull");
}

From source file:it.infn.ct.mpi_portlet.java

public void getInputForm(ActionRequest request) {
    if (PortletFileUpload.isMultipartContent(request))
        try {/*  w  w w.j  av a 2 s .c o m*/
            FileItemFactory factory = new DiskFileItemFactory();
            PortletFileUpload upload = new PortletFileUpload(factory);
            List items = upload.parseRequest(request);
            File repositoryPath = new File("/tmp");
            DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
            diskFileItemFactory.setRepository(repositoryPath);
            Iterator iter = items.iterator();
            String logstring = "";
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                String fieldName = item.getFieldName();
                String fileName = item.getName();
                String contentType = item.getContentType();
                boolean isInMemory = item.isInMemory();
                long sizeInBytes = item.getSize();
                logstring += LS + "field name: '" + fieldName + "' - '" + item.getString() + "'";
                switch (inputControlsIds.valueOf(fieldName)) {
                case file_inputFile:
                    inputFileName = item.getString();
                    processInputFile(item);
                    break;
                case inputFile:
                    inputFileText = item.getString();
                    break;
                case JobIdentifier:
                    jobIdentifier = item.getString();
                    break;
                case cpunumber:
                    cpunumber = item.getString();
                    break;
                default:
                    _log.info("Unhandled input field: '" + fieldName + "' - '" + item.getString() + "'");
                } // switch fieldName                                                   
            } // while iter.hasNext()   
            _log.info(LS + "Reporting" + LS + "---------" + LS + logstring);
        } catch (Exception e) {
            _log.info("Caught exception while processing files to upload: '" + e.toString() + "'");
        }
    // The input form do not use the "multipart/form-data" 
    else {
        // Retrieve from the input form the given application values
        inputFileName = (String) request.getParameter("file_inputFile");
        inputFileText = (String) request.getParameter("inputFile");
        jobIdentifier = (String) request.getParameter("JobIdentifier");
        cpunumber = (String) request.getParameter("cpunumber");
    } // ! isMultipartContent

    // Show into the log the taken inputs
    _log.info(LS + "Taken input parameters:" + LS + "inputFileName: '" + inputFileName + "'" + LS
            + "inputFileText: '" + inputFileText + "'" + LS + "jobIdentifier: '" + jobIdentifier + "'" + LS
            + "cpunumber: '" + cpunumber + "'");
}

From source file:hu.sztaki.lpds.pgportal.portlets.credential.AssertionPortlet.java

/**
 * Uploading SAML file(s)./*from w w w .  j  a  v a 2 s  .  c o  m*/
 * The parameters are filled in by the user on the saml/UploadAssertion.jsp page.
 * @param request ActionRequest
 * @param response ActionResponse
 */
@Override
public synchronized void doUpload(ActionRequest request, ActionResponse response) {
    logger.trace("");

    // logger.info("Assertion-doUpload");
    FileItem samlFile = null;
    String sresource = null; // selected resource
    String action = request.getParameter("guse");
    logger.info("Action:" + action);

    try {
        DiskFileItemFactory factory = new DiskFileItemFactory();
        PortletFileUpload pfu = new PortletFileUpload(factory);

        pfu.setSizeMax(1048576); // Maximum upload size 1Mb

        Iterator iter = pfu.parseRequest(request).iterator();

        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();

            if (item.isFormField()) { // retrieve parameters if item is a form field
                if ("sresource".equals(item.getFieldName())) {
                    sresource = item.getString();
                }
            } else {
                if ("samlFile".equals(item.getFieldName())) {
                    samlFile = item;
                }
            }
        }

        List<String> result = uploadSaml(request.getPortletSession(), samlFile, sresource,
                request.getRemoteUser());

        StringBuilder sb = new StringBuilder();
        boolean flag = false;
        for (String msg : result) {
            if (flag) {
                sb.append("<br />");
            } else {
                flag = true;
            }
            sb.append(msg);
        }
        request.setAttribute("msg", sb.toString());
    } catch (Exception e) {
        request.setAttribute("msg", "Upload failed. Reason: " + e.getMessage());
        logger.info("Upload of asseriont failed. Reason: " + e.getMessage());
        logger.debug("Exception:", e);
    }
}