Example usage for org.apache.commons.fileupload.servlet ServletFileUpload getItemIterator

List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload getItemIterator

Introduction

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

Prototype

public FileItemIterator getItemIterator(HttpServletRequest request) throws FileUploadException, IOException 

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:com.smartgwt.extensions.fileuploader.server.TestServiceImpl.java

private void processFiles(HttpServletRequest request, HttpServletResponse response) {
    HashMap<String, String> args = new HashMap<String, String>();
    try {/*from   w ww.  ja  va 2 s . c  om*/
        ServletFileUpload upload = new ServletFileUpload();
        FileItemIterator iter = upload.getItemIterator(request);
        FileItemStream fileItem = null;
        // pick up parameters first and note actual FileItem
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            if (item.isFormField()) {
                args.put(name, Streams.asString(item.openStream()));
            } else {
                fileItem = item;
            }
        }
        if (fileItem != null) {
            args.put("contentType", fileItem.getContentType());
            args.put("fileName", FileUtils.filename(fileItem.getName()));
            System.out.println("uploading args " + args);
            String context = args.get("context");
            String model = args.get("model");
            String xq = args.get("xq");
            System.out.println(context + "," + model + "," + xq);
            File f = new File(args.get("fileName"));
            System.out.println(f.getAbsolutePath());
            /*
             * TODO: pboysen get the state, context and fileManager and store the
             * stream in fileName.  Parameters should be passed to locate state 
             * and conversion options.
             */
            response.setContentType("text/html");
            response.setHeader("Pragma", "No-cache");
            response.setDateHeader("Expires", 0);
            response.setHeader("Cache-Control", "no-cache");
            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<body>");
            out.println("<script>");
            out.println("top.uploadComplete('" + args.get("fileName") + "');");
            out.println("</script>");
            out.println("</body>");
            out.println("</html>");
            out.flush();
        } else {
            //TODO: add error code
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

From source file:com.sifiso.dvs.util.DocFileUtil.java

public ResponseDTO downloadPDF(HttpServletRequest request, PlatformUtil platformUtil)
        throws FileUploadException {
    logger.log(Level.INFO, "######### starting PDF DOWNLOAD process\n\n");
    ResponseDTO resp = new ResponseDTO();
    InputStream stream = null;/*from ww  w .  j  a v a  2s  .c  o m*/
    File rootDir;
    try {
        rootDir = dvsProperties.getDocumentDir();
        logger.log(Level.INFO, "rootDir - {0}", rootDir.getAbsolutePath());
        if (!rootDir.exists()) {
            rootDir.mkdir();
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Properties file problem", ex);
        resp.setMessage("Server file unavailable. Please try later");
        resp.setStatusCode(114);

        return resp;
    }

    PatientfileDTO dto = null;
    Gson gson = new Gson();
    File clientDir = null, surgeryDir = null, doctorDir = null;
    try {
        ServletFileUpload upload = new ServletFileUpload();
        FileItemIterator iter = upload.getItemIterator(request);
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            stream = item.openStream();
            if (item.isFormField()) {
                if (name.equalsIgnoreCase("JSON")) {
                    String json = Streams.asString(stream);
                    if (json != null) {
                        logger.log(Level.INFO, "picture with associated json: {0}", json);
                        dto = gson.fromJson(json, PatientfileDTO.class);
                        if (dto != null) {
                            surgeryDir = createSurgeryFileDirectory(rootDir, surgeryDir,
                                    dto.getDoctor().getSurgeryID());
                            if (dto.getDoctorID() != null) {
                                doctorDir = createDoctorDirectory(surgeryDir, doctorDir, dto.getDoctorID());
                                if (dto.getClientID() != null) {
                                    clientDir = createClientDirectory(doctorDir, clientDir);
                                }
                            }

                        }
                    } else {
                        logger.log(Level.WARNING, "JSON input seems pretty fucked up! is NULL..");
                    }
                }
            } else {
                File imageFile = null;
                if (dto == null) {
                    continue;
                }
                DateTime dt = new DateTime();
                String fileName = "";

                if (dto.getClientID() != null) {
                    fileName = "client" + dto.getClientID() + ".pdf";
                }

                imageFile = new File(clientDir, fileName);

                writeFile(stream, imageFile);
                resp.setStatusCode(0);
                resp.setMessage("Photo downloaded from mobile app ");
                //add database
                System.out.println("filepath: " + imageFile.getAbsolutePath());

            }
        }

    } catch (FileUploadException | IOException | JsonSyntaxException ex) {
        logger.log(Level.SEVERE, "Servlet failed on IOException, images NOT uploaded", ex);
        throw new FileUploadException();
    }

    return resp;
}

From source file:de.mpg.imeji.presentation.upload.UploadServlet.java

/**
 * Download the file on the disk in a tmp file
 *
 * @param req//from  w  w w.jav  a 2 s . c  o m
 * @return
 * @throws FileUploadException
 * @throws IOException
 */
private UploadItem doUpload(HttpServletRequest req) {
    try {
        final ServletFileUpload upload = new ServletFileUpload();
        final FileItemIterator iter = upload.getItemIterator(req);
        UploadItem uploadItem = new UploadItem();
        while (iter.hasNext()) {
            final FileItemStream fis = iter.next();
            if (!fis.isFormField()) {
                uploadItem.setFilename(fis.getName());
                final File tmp = TempFileUtil.createTempFile("upload", null);
                StorageUtils.writeInOut(fis.openStream(), new FileOutputStream(tmp), true);
                uploadItem.setFile(tmp);
            } else {
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                StorageUtils.writeInOut(fis.openStream(), out, true);
                uploadItem.getParams().put(fis.getFieldName(), out.toString("UTF-8"));
            }
        }
        return uploadItem;
    } catch (final Exception e) {
        LOGGER.error("Error file upload", e);
    }
    return new UploadItem();
}

From source file:edu.ucla.loni.pipeline.server.Upload.Uploaders.FileUploadServlet.java

/**
 * Handles Request to Upload File, Builds a Response
 * //  ww  w.ja  va  2  s .com
 * @param req
 * @param respBuilder
 */
private void handleFileUpload(HttpServletRequest req, ResponseBuilder respBuilder) {

    // process only multipart requests
    if (ServletFileUpload.isMultipartContent(req)) {
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload();

        try {
            // Parse the request
            FileItemIterator iter = upload.getItemIterator(req);

            while (iter.hasNext()) {
                FileItemStream item = iter.next();
                handleUploadedFile(item, respBuilder);
            }
        } catch (FileUploadException e) {
            respBuilder.appendRespMessage("The file was not uploaded successfully.");
        } catch (IOException e) {
            respBuilder.appendRespMessage("The file was not uploaded successfully.");
        }
    } else {
        respBuilder.appendRespMessage("Your form of request is not supported by this upload servlet.");
    }
}

From source file:com.smartgwt.extensions.fileuploader.server.ProjectServlet.java

private void processFiles(HttpServletRequest request, HttpServletResponse response) {
    HashMap<String, String> args = new HashMap<String, String>();
    boolean isGWT = true;
    try {// w ww  .  j a  va 2 s.  co m
        if (log.isDebugEnabled())
            log.debug(request.getParameterMap());
        ServletFileUpload upload = new ServletFileUpload();
        FileItemIterator iter = upload.getItemIterator(request);
        // pick up parameters first and note actual FileItem
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            if (item.isFormField()) {
                args.put(name, Streams.asString(item.openStream()));
            } else {
                args.put("contentType", item.getContentType());
                String fileName = item.getName();
                int slash = fileName.lastIndexOf("/");
                if (slash < 0)
                    slash = fileName.lastIndexOf("\\");
                if (slash > 0)
                    fileName = fileName.substring(slash + 1);
                args.put("fileName", fileName);
                // upload requests can come from smartGWT (args) or
                // FCKEditor (request)
                String contextName = args.get("context");
                String model = args.get("model");
                String path = args.get("path");
                if (contextName == null) {
                    isGWT = false;
                    contextName = request.getParameter("context");
                    model = request.getParameter("model");
                    path = request.getParameter("path");
                    if (log.isDebugEnabled())
                        log.debug("query=" + request.getQueryString());
                } else if (log.isDebugEnabled())
                    log.debug(args);
                // the following code stores the file based on your parameters
                /*               ProjectContext context = ContextService.get().getContext(
                                     contextName);
                               ProjectState state = (ProjectState) request.getSession()
                                     .getAttribute(contextName);
                               InputStream in = null;
                               try {
                                  in = item.openStream();
                                  state.getFileManager().storeFile(
                context.getModel(model), path + fileName, in);
                               } catch (Exception e) {
                                  e.printStackTrace();
                                  log.error("Fail to upload " + fileName + " to " + path);
                               } finally {
                                  if (in != null)
                                     try {
                in.close();
                                     } catch (Exception e) {
                                     }
                               }
                */
            }
        }
        // TODO: need to handle conversion options and error reporting
        response.setContentType("text/html");
        response.setHeader("Pragma", "No-cache");
        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        if (isGWT) {
            out.println("<script type=\"text/javascript\">");
            out.println("if (parent.uploadComplete) parent.uploadComplete('" + args.get("fileName") + "');");
            out.println("</script>");
        } else
            out.println(getEditorResponse());
        out.println("</body>");
        out.println("</html>");
        out.flush();
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

From source file:in.co.sneh.controller.CargaExcelRural.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  w ww.  j  a v  a2s . c  o m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        CargaExcelReqRural lee = new CargaExcelReqRural();
        String Unidad = "";

        boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
        if (isMultiPart) {
            ServletFileUpload upload = new ServletFileUpload();
            try {
                HttpSession sesion = request.getSession(true);
                FileItemIterator itr = upload.getItemIterator(request);
                while (itr.hasNext()) {
                    FileItemStream item = itr.next();
                    if (item.isFormField()) {
                        String fielName = item.getFieldName();
                        InputStream is = item.openStream();
                        byte[] b = new byte[is.available()];
                        is.read(b);
                        String value = new String(b);
                        response.getWriter().println(fielName + ":" + value + "<br/>");
                    } else {
                        String path = getServletContext().getRealPath("/");
                        if (CargaExcelRuralModel.processFile(path, item)) {
                            //response.getWriter().println("file uploaded successfully");
                            if (lee.obtieneArchivo(path, item.getName())) {
                                out.println("<script>alert('Se carg el Folio Correctamente')</script>");
                                out.println(
                                        "<script>window.location='facturacionRural/cargaRequerimento.jsp'</script>");
                            }
                            //response.sendRedirect("cargaFotosCensos.jsp");
                        } else {
                            //response.getWriter().println("file uploading falied");
                            //response.sendRedirect("cargaFotosCensos.jsp");
                        }
                    }
                }
            } catch (FileUploadException fue) {
                fue.printStackTrace();
            }
            out.println("<script>alert('No se pudo cargar el Folio, verifique las celdas')</script>");
            out.println("<script>window.location='requerimiento.jsp'</script>");
            //response.sendRedirect("carga.jsp");
        }
    } finally {
        out.close();
    }
}

From source file:fedora.server.rest.RestUtil.java

/**
 * Retrieves the contents of the HTTP Request.
 * @return InputStream from the request//from  w  w w  . j  a v a 2s  .com
 */
public RequestContent getRequestContent(HttpServletRequest request, HttpHeaders headers) throws Exception {
    RequestContent rContent = null;

    // See if the request is a multi-part file upload request
    if (ServletFileUpload.isMultipartContent(request)) {

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload();

        // Parse the request, use the first available File item
        FileItemIterator iter = upload.getItemIterator(request);
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            if (!item.isFormField()) {
                rContent = new RequestContent();
                rContent.contentStream = item.openStream();
                rContent.mimeType = item.getContentType();

                FileItemHeaders itemHeaders = item.getHeaders();
                if (itemHeaders != null) {
                    String contentLength = itemHeaders.getHeader("Content-Length");
                    if (contentLength != null) {
                        rContent.size = Integer.parseInt(contentLength);
                    }
                }

                break;
            }
        }
    } else {
        // If the content stream was not been found as a multipart,
        // try to use the stream from the request directly
        if (rContent == null) {
            if (request.getContentLength() > 0) {
                rContent = new RequestContent();
                rContent.contentStream = request.getInputStream();
                rContent.size = request.getContentLength();
            } else {
                String transferEncoding = request.getHeader("Transfer-Encoding");
                if (transferEncoding != null && transferEncoding.contains("chunked")) {
                    BufferedInputStream bis = new BufferedInputStream(request.getInputStream());
                    bis.mark(2);
                    if (bis.read() > 0) {
                        bis.reset();
                        rContent = new RequestContent();
                        rContent.contentStream = bis;
                    }
                }
            }
        }
    }

    // Attempt to set the mime type and size if not already set
    if (rContent != null) {
        if (rContent.mimeType == null) {
            MediaType mediaType = headers.getMediaType();
            if (mediaType != null) {
                rContent.mimeType = mediaType.toString();
            }
        }

        if (rContent.size == 0) {
            List<String> lengthHeaders = headers.getRequestHeader("Content-Length");
            if (lengthHeaders != null && lengthHeaders.size() > 0) {
                rContent.size = Integer.parseInt(lengthHeaders.get(0));
            }
        }
    }

    return rContent;
}

From source file:com.boundlessgeo.geoserver.api.controllers.ApiController.java

protected FileItemIterator doFileUpload(final HttpServletRequest request)
        throws FileUploadException, IOException {
    final ServletFileUpload upload = newFileUpload();
    //Delegate FileItemIterator to only return files
    return new FileItemIterator() {
        FileItemIterator delegate = upload.getItemIterator(request);
        FileItemStream next = null;/*from w w w  . ja  va2s  .co  m*/

        @Override
        public boolean hasNext() throws FileUploadException, IOException {
            if (next != null) {
                return true;
            }
            while (delegate.hasNext()) {
                FileItemStream item = delegate.next();
                if (!item.isFormField()) {
                    next = item;
                    break;
                }
            }
            return next != null;
        }

        @Override
        public FileItemStream next() throws FileUploadException, IOException {
            if (hasNext()) {
                FileItemStream current = next;
                next = null;
                return current;
            }
            throw new NoSuchElementException();
        }
    };
}

From source file:com.jythonui.server.upload.UpLoadFile.java

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ServletFileUpload upload = new ServletFileUpload();

    IAddNewBlob addB = SHolder.getAddBlob();

    PrintWriter out = response.getWriter();
    boolean first = true;
    try {//w  w w.  j ava  2 s .co m
        FileItemIterator iter = upload.getItemIterator(request);

        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            // only uploaded files
            if (item.isFormField())
                continue;

            String fName = item.getName();
            // nothing uploaded
            if (CUtil.EmptyS(fName))
                continue;
            InputStream stream = item.openStream();
            // may be set initial size not default
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            byte[] buffer = new byte[8192];
            int len;
            while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
                bout.write(buffer, 0, len);
            }
            bout.close();
            // store blob content
            String bkey = addB.addNewBlob(ICommonConsts.BLOBUPLOAD_REALM, ICommonConsts.BLOBUPLOAD_KEY,
                    bout.toByteArray());
            if (!first)
                out.print(',');
            first = false;
            out.print(ICommonConsts.BLOBUPLOAD_REALM);
            out.print(':');
            out.print(bkey);
            out.print(':');
            out.print(fName);
        } // while

    } catch (Exception e) {
        out.print(ICommonConsts.UPLOADFILEERROR);
        IGetLogMess iLog = SHolder.getM();
        String mess = iLog.getMess(IErrorCode.ERRORCODE77, ILogMess.ERRORWHILEUPLOADING);
        log.log(Level.SEVERE, mess, e);
    }
    out.close();

}

From source file:com.google.reducisaurus.servlets.BaseServlet.java

private String collectFromFileUpload(final HttpServletRequest req) throws IOException, ServletException {
    StringBuilder collector = new StringBuilder();
    try {//from w w  w.j  ava2 s.  c  om
        ServletFileUpload sfu = new ServletFileUpload();
        FileItemIterator it = sfu.getItemIterator(req);
        while (it.hasNext()) {
            FileItemStream item = it.next();
            if (!item.isFormField()) {
                InputStream stream = item.openStream();
                collector.append(IOUtils.toString(stream, "UTF-8"));
                collector.append("\n");
                IOUtils.closeQuietly(stream);
            }
        }
    } catch (FileUploadException e) {
        throw new ServletException(e);
    }

    return collector.toString();
}