Example usage for org.apache.commons.fileupload.servlet ServletRequestContext ServletRequestContext

List of usage examples for org.apache.commons.fileupload.servlet ServletRequestContext ServletRequestContext

Introduction

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

Prototype

public ServletRequestContext(HttpServletRequest request) 

Source Link

Document

Construct a context for this request.

Usage

From source file:psiprobe.controllers.deploy.UploadWarController.java

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    if (FileUploadBase.isMultipartContent(new ServletRequestContext(request))) {

        File tmpWar = null;/*w w  w .  ja  va 2  s  . c om*/
        String contextName = null;
        boolean update = false;
        boolean compile = false;
        boolean discard = false;

        // parse multipart request and extract the file
        FileItemFactory factory = new DiskFileItemFactory(1048000,
                new File(System.getProperty("java.io.tmpdir")));
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(-1);
        upload.setHeaderEncoding(StandardCharsets.UTF_8.name());
        try {
            List<FileItem> fileItems = upload.parseRequest(request);
            for (FileItem fi : fileItems) {
                if (!fi.isFormField()) {
                    if (fi.getName() != null && fi.getName().length() > 0) {
                        tmpWar = new File(System.getProperty("java.io.tmpdir"),
                                FilenameUtils.getName(fi.getName()));
                        fi.write(tmpWar);
                    }
                } else if ("context".equals(fi.getFieldName())) {
                    contextName = fi.getString();
                } else if ("update".equals(fi.getFieldName()) && "yes".equals(fi.getString())) {
                    update = true;
                } else if ("compile".equals(fi.getFieldName()) && "yes".equals(fi.getString())) {
                    compile = true;
                } else if ("discard".equals(fi.getFieldName()) && "yes".equals(fi.getString())) {
                    discard = true;
                }
            }
        } catch (Exception e) {
            logger.error("Could not process file upload", e);
            request.setAttribute("errorMessage", getMessageSourceAccessor()
                    .getMessage("probe.src.deploy.war.uploadfailure", new Object[] { e.getMessage() }));
            if (tmpWar != null && tmpWar.exists() && !tmpWar.delete()) {
                logger.error("Unable to delete temp war file");
            }
            tmpWar = null;
        }

        String errMsg = null;

        if (tmpWar != null) {
            try {
                if (tmpWar.getName().endsWith(".war")) {

                    if (contextName == null || contextName.length() == 0) {
                        String warFileName = tmpWar.getName().replaceAll("\\.war$", "");
                        contextName = "/" + warFileName;
                    }

                    contextName = getContainerWrapper().getTomcatContainer().formatContextName(contextName);

                    /*
                     * pass the name of the newly deployed context to the presentation layer using this name
                     * the presentation layer can render a url to view compilation details
                     */
                    String visibleContextName = "".equals(contextName) ? "/" : contextName;
                    request.setAttribute("contextName", visibleContextName);

                    if (update && getContainerWrapper().getTomcatContainer().findContext(contextName) != null) {

                        logger.debug("updating {}: removing the old copy", contextName);
                        getContainerWrapper().getTomcatContainer().remove(contextName);
                    }

                    if (getContainerWrapper().getTomcatContainer().findContext(contextName) == null) {
                        // move the .war to tomcat application base dir
                        String destWarFilename = getContainerWrapper().getTomcatContainer()
                                .formatContextFilename(contextName);
                        File destWar = new File(getContainerWrapper().getTomcatContainer().getAppBase(),
                                destWarFilename + ".war");

                        FileUtils.moveFile(tmpWar, destWar);

                        // let Tomcat know that the file is there
                        getContainerWrapper().getTomcatContainer().installWar(contextName,
                                new URL("jar:" + destWar.toURI().toURL().toString() + "!/"));

                        Context ctx = getContainerWrapper().getTomcatContainer().findContext(contextName);
                        if (ctx == null) {
                            errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.notinstalled",
                                    new Object[] { visibleContextName });
                        } else {
                            request.setAttribute("success", Boolean.TRUE);
                            // Logging action
                            Authentication auth = SecurityContextHolder.getContext().getAuthentication();
                            String name = auth.getName(); // get username logger
                            logger.info(getMessageSourceAccessor().getMessage("probe.src.log.deploywar"), name,
                                    contextName);
                            if (discard) {
                                getContainerWrapper().getTomcatContainer().discardWorkDir(ctx);
                                logger.info(getMessageSourceAccessor().getMessage("probe.src.log.discardwork"),
                                        name, contextName);
                            }
                            if (compile) {
                                Summary summary = new Summary();
                                summary.setName(ctx.getName());
                                getContainerWrapper().getTomcatContainer().listContextJsps(ctx, summary, true);
                                request.getSession(false).setAttribute(DisplayJspController.SUMMARY_ATTRIBUTE,
                                        summary);
                                request.setAttribute("compileSuccess", Boolean.TRUE);
                            }
                        }

                    } else {
                        errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.alreadyExists",
                                new Object[] { visibleContextName });
                    }
                } else {
                    errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.notWar.failure");
                }
            } catch (Exception e) {
                errMsg = getMessageSourceAccessor().getMessage("probe.src.deploy.war.failure",
                        new Object[] { e.getMessage() });
                logger.error("Tomcat throw an exception when trying to deploy", e);
            } finally {
                if (errMsg != null) {
                    request.setAttribute("errorMessage", errMsg);
                }
                if (tmpWar.exists() && !tmpWar.delete()) {
                    logger.error("Unable to delete temp war file");
                }
            }
        }
    }
    return new ModelAndView(new InternalResourceView(getViewName()));
}

From source file:servlets.RegistroPrendas.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    HttpSession respuesta = request.getSession(true);
    PrintWriter out = response.getWriter();

    String uploadPath = "C:" + "/" + "Carga";

    File destino = new File(uploadPath);
    if (!destino.exists()) {
        destino.mkdir();/*  w ww  .  ja va  2  s  . com*/
    }

    ServletRequestContext src = new ServletRequestContext(request);
    if (ServletFileUpload.isMultipartContent(src)) {
        DiskFileItemFactory factory = new DiskFileItemFactory((1024 * 1024), destino);
        ServletFileUpload upload = new ServletFileUpload(factory);

        try {
            java.util.List lista = upload.parseRequest(src);
            File file = null;
            java.util.Iterator it = lista.iterator();

            while (it.hasNext()) {
                FileItem item = (FileItem) it.next();
                if (item.isFormField())
                    out.println(item.getFieldName() + "<br>");
                else {
                    file = new File(item.getName());
                    item.write(new File(destino, file.getName()));
                    out.println(item.getName() + " Fichero subido");

                    String ruta = uploadPath + "/" + item.getName();

                    DAO d = new DAO();
                    try {
                        d.conectar();
                        d.registrarPrendas(ruta);
                        respuesta.setAttribute("success", "Las prendas se han registrado exitosamente");
                        response.sendRedirect("registroPrendas.jsp");
                        d.desconectar();
                    } catch (Exception e) {
                        out.println("Excepcion: " + e);
                    }
                }
            }
        } catch (org.apache.commons.fileupload.FileUploadException ex) {
            Logger.getLogger(RegistroPrendas.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(RegistroPrendas.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

From source file:temporal.web.DemoServlet.java

void generateOutput(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {

    InputStream in = null;/*from   www  .ja  v  a 2  s  . c  o  m*/
    OutputStream out = null;

    try {
        response.setContentType(mDemo.responseType());
        out = response.getOutputStream();

        @SuppressWarnings("unchecked") // bad inherited API from commons
        Properties properties = mapToProperties((Map<String, String[]>) request.getParameterMap());

        String reqContentType = request.getContentType();

        if (reqContentType == null || reqContentType.startsWith("text/plain")) {
            properties.setProperty("inputType", "text/plain");
            String reqCharset = request.getCharacterEncoding();
            if (reqCharset != null)
                properties.setProperty("inputCharset", reqCharset);
            in = request.getInputStream();

        } else if (reqContentType.startsWith("application/x-www-form-urlencoded")) {
            String codedText = request.getParameter("inputText");
            byte[] bytes = codedText.getBytes("ISO-8859-1");
            in = new ByteArrayInputStream(bytes);

        } else if (ServletFileUpload.isMultipartContent(new ServletRequestContext(request))) {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload uploader = new ServletFileUpload(factory);
            FileItemIterator it = uploader.getItemIterator(request);
            /*  @SuppressWarnings("unchecked") // bad commons API
            /*  List<FileItem> items = (List<FileItem>) uploader.parseRequest(request);
              Iterator<FileItem> it = items.iterator();*/
            while (it.hasNext()) {
                log("found item");
                FileItemStream item = it.next();
                InputStream stream = item.openStream();
                if (item.isFormField()) {
                    String key = item.getFieldName();
                    //   String val = item.getString();
                    String val = org.apache.commons.fileupload.util.Streams.asString(stream);
                    properties.setProperty(key, val);
                } else {
                    byte[] bytes = org.apache.commons.fileupload.util.Streams.asString(stream).getBytes();
                    in = new ByteArrayInputStream(bytes);
                }
            }

        } else {
            System.out.println("unexpected content type");
            String msg = "Unexpected request content" + reqContentType;
            throw new ServletException(msg);
        }
        mDemo.process(in, out, properties);
    } catch (FileUploadException e) {
        throw new ServletException(e);
    } finally {
        Streams.closeQuietly(in);
        Streams.closeQuietly(out);
    }
}

From source file:xworker.http.fileupload.FileuploadActionsInitFileuploadRequestCreator.java

@SuppressWarnings("unchecked")
public static Object run(ActionContext actionContext) throws FileUploadException {
    Thing self = (Thing) actionContext.get("self");
    HttpServletRequest request = (HttpServletRequest) actionContext.get("request");

    //MultiPartRequest
    ServletRequestContext context = new ServletRequestContext(request);
    FileItemFactory factory = DiskFileItemFactoryManager.getDiskFileItemFactory(self);
    MultiPartRequest multiPartRequest = new MultiPartRequest(request, factory, context);
    HttpRequestBean requestBean = new HttpRequestBean(multiPartRequest);

    try {/*from  ww  w.j a  va2  s  .co  m*/
        Bindings bindings = actionContext.push(null);
        bindings.put("request", multiPartRequest);
        bindings.put("requestBean", requestBean);

        Object result = null;
        for (Thing actions : (List<Thing>) self.get("actions@")) {
            for (Thing action : actions.getChilds()) {
                result = action.getAction().run(actionContext, null, true);

                if (ActionContext.RETURN == actionContext.getStatus()
                        || ActionContext.CANCEL == actionContext.getStatus()
                        || ActionContext.BREAK == actionContext.getStatus()
                        || ActionContext.EXCEPTION == actionContext.getStatus()) {
                    break;
                }
            }
        }

        return result;
    } finally {
        actionContext.pop();
    }
}

From source file:xworker.http.fileupload.FileuploadThingActions.java

@SuppressWarnings("unchecked")
public static String doFileuploadAction(ActionContext actionContext) throws ClassNotFoundException,
        InstantiationException, IllegalAccessException, FileUploadException, ServletException {
    Thing self = (Thing) actionContext.get("self");
    HttpServletRequest request = (HttpServletRequest) actionContext.get("request");
    HttpServletResponse response = (HttpServletResponse) actionContext.get("response");

    String key = "__fileuploadAction__";
    FileuploadAction action = (FileuploadAction) self.getData(key);
    Long lastModified = (Long) self.getData(key + "LastModified");
    if (action == null || lastModified == null || lastModified != self.getMetadata().getLastModified()) {
        Class<FileuploadAction> cls = (Class<FileuploadAction>) Class.forName(self.getString("classPath"));
        action = cls.newInstance();//from ww w.  ja  va 2 s .  com
        self.setData(key, action);
        self.setData(key + "LastModified", self.getMetadata().getLastModified());
    }

    //MultiPartRequest
    ServletRequestContext context = new ServletRequestContext(request);
    FileItemFactory factory = DiskFileItemFactoryManager.getDiskFileItemFactory(self);
    MultiPartRequest multiPartRequest = new MultiPartRequest(request, factory, context);

    //
    return action.doService(multiPartRequest, request, response, actionContext);
}