Example usage for org.apache.commons.fileupload FileItem getInputStream

List of usage examples for org.apache.commons.fileupload FileItem getInputStream

Introduction

In this page you can find the example usage for org.apache.commons.fileupload FileItem getInputStream.

Prototype

InputStream getInputStream() throws IOException;

Source Link

Document

Returns an java.io.InputStream InputStream that can be used to retrieve the contents of the file.

Usage

From source file:com.duroty.application.files.actions.UploadAction.java

protected ActionForward doExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    ActionMessages errors = new ActionMessages();

    try {//from   w  w w.j av a2  s . c o  m
        boolean isMultipart = FileUpload.isMultipartContent(request);

        Store storeInstance = getStoreInstance(request);

        if (isMultipart) {
            Map fields = new HashMap();
            Vector files = new Vector();

            //Parse the request
            List items = diskFileUpload.parseRequest(request);

            //Process the uploaded items
            Iterator iter = items.iterator();

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

                if (item.isFormField()) {
                    fields.put(item.getFieldName(), item.getString());
                } else {
                    if (!StringUtils.isBlank(item.getName())) {
                        ByteArrayOutputStream baos = null;

                        try {
                            baos = new ByteArrayOutputStream();

                            IOUtils.copy(item.getInputStream(), baos);

                            MailPartObj part = new MailPartObj();
                            part.setAttachent(baos.toByteArray());
                            part.setContentType(item.getContentType());
                            part.setName(item.getName());
                            part.setSize(item.getSize());

                            files.addElement(part);
                        } catch (Exception ex) {
                        } finally {
                            IOUtils.closeQuietly(baos);
                        }
                    }
                }
            }

            if (files.size() > 0) {
                //Integer label = new Integer((String) fields.get("label"));
                storeInstance.send(files, 0, Charset.defaultCharset().displayName());
            }
        } else {
            errors.add("general",
                    new ActionMessage(ExceptionCode.ERROR_MESSAGES_PREFIX + "mail.send", "The form is null"));
            request.setAttribute("exception", "The form is null");
            request.setAttribute("newLocation", null);
            doTrace(request, DLog.ERROR, getClass(), "The form is null");
        }
    } catch (Exception ex) {
        String errorMessage = ExceptionUtilities.parseMessage(ex);

        if (errorMessage == null) {
            errorMessage = "NullPointerException";
        }

        errors.add("general", new ActionMessage(ExceptionCode.ERROR_MESSAGES_PREFIX + "general", errorMessage));
        request.setAttribute("exception", errorMessage);
        doTrace(request, DLog.ERROR, getClass(), errorMessage);
    } finally {
    }

    if (errors.isEmpty()) {
        doTrace(request, DLog.INFO, getClass(), "OK");

        return mapping.findForward(Constants.ACTION_SUCCESS_FORWARD);
    } else {
        saveErrors(request, errors);

        return mapping.findForward(Constants.ACTION_FAIL_FORWARD);
    }
}

From source file:edu.lafayette.metadb.web.dataman.ImportAdminDesc.java

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*//*from w w w .ja v  a2  s  . c  o m*/

@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    PrintWriter out = response.getWriter();
    String delimiter = "comma";
    boolean replaceEntity = false;
    String projname = (String) request.getSession(false).getAttribute(Global.SESSION_PROJECT);
    JSONObject output = new JSONObject();

    try {
        if (ServletFileUpload.isMultipartContent(request)) {
            ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
            List fileItemsList = servletFileUpload.parseRequest(request);
            DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
            diskFileItemFactory.setSizeThreshold(40960); /* the unit is bytes */

            Iterator it = fileItemsList.iterator();
            InputStream input = null;
            while (it.hasNext()) {
                FileItem fileItem = (FileItem) it.next();

                if (fileItem.isFormField()) {
                    /* The file item contains a simple name-value pair of a form field */
                    if (fileItem.getFieldName().equals("delimiter"))
                        delimiter = fileItem.getString();
                    else if (fileItem.getFieldName().equals("replace-entity"))
                        replaceEntity = true;
                } else {
                    input = fileItem.getInputStream();
                }
            }

            String delimiterType = "csv";
            if (delimiter.equals("tab")) {
                delimiterType = "tsv";
            }
            if (input != null) {
                Result res = DataImporter.importFile(delimiterType, projname, input, replaceEntity);
                if (res.isSuccess()) {
                    HttpSession session = request.getSession(false);
                    if (session != null) {
                        String userName = (String) session.getAttribute(Global.SESSION_USERNAME);
                        SysLogDAO.log(userName, Global.SYSLOG_PROJECT,
                                "Data imported into project " + projname);
                    }
                    output.put("message", "Data import successfully");
                } else {
                    output.put("message", "The following fields have been changed:");
                    StringBuilder fields = new StringBuilder();
                    for (String field : (ArrayList<String>) res.getData())
                        fields.append(field + ',');
                    output.put("fields", fields.toString());
                }
                output.put("success", res.isSuccess());
            } else {
                output.put("success", false);
                output.put("message", "Null data");
            }
        } else {
            output.put("success", false);
            output.put("message", "Form is not multi-part");
        }
    } catch (Exception e) {
        MetaDbHelper.logEvent(e);
    }
    out.print(output);
    out.flush();
}

From source file:corpixmgr.handler.CorpixPostHandler.java

/**
 * Parse the import params from the request
 * @param request the http request//from w  ww. j av a  2s.  co  m
 */
protected void parseImportParams(HttpServletRequest request) throws CorpixException {
    try {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        //System.out.println("Parsing import params");
        if (isMultipart) {
            FileItemFactory factory = new DiskFileItemFactory();
            // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            // Parse the request
            List items = upload.parseRequest(request);
            for (int i = 0; i < items.size(); i++) {
                FileItem item = (FileItem) items.get(i);
                if (item.isFormField()) {
                    String fieldName = item.getFieldName();
                    if (fieldName != null) {
                        String contents = item.getString("UTF-8");
                        processField(fieldName, contents);
                    }
                } else if (item.getName().length() > 0) {
                    fileName = item.getName();
                    InputStream is = item.getInputStream();
                    ByteArrayOutputStream bh = new ByteArrayOutputStream();
                    while (is.available() > 0) {
                        byte[] b = new byte[is.available()];
                        is.read(b);
                        bh.write(b);
                    }
                    fileData = bh.toByteArray();
                }
            }
        } else {
            Map tbl = request.getParameterMap();
            Set<String> keys = tbl.keySet();
            Iterator<String> iter = keys.iterator();
            while (iter.hasNext()) {
                String key = iter.next();
                String[] values = (String[]) tbl.get(key);
                for (int i = 0; i < values.length; i++)
                    processField(key, values[i]);
            }
        }
    } catch (Exception e) {
        throw new CorpixException(e);
    }
}

From source file:com.google.zxing.web.DecodeServlet.java

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

    if (!ServletFileUpload.isMultipartContent(request)) {
        log.info("File upload was not multipart");
        response.sendRedirect("badimage.jspx");
        return;//  ww  w.ja v  a 2s. c  om
    }

    ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
    upload.setFileSizeMax(MAX_IMAGE_SIZE);

    // Parse the request
    try {
        for (FileItem item : upload.parseRequest(request)) {
            if (!item.isFormField()) {
                if (item.getSize() <= MAX_IMAGE_SIZE) {
                    log.info("Decoding uploaded file");
                    try (InputStream is = item.getInputStream()) {
                        processStream(is, request, response);
                    }
                } else {
                    log.info("Too large");
                    response.sendRedirect("badimage.jspx");
                }
                break;
            }
        }
    } catch (FileUploadException fue) {
        log.info(fue.toString());
        response.sendRedirect("badimage.jspx");
    }

}

From source file:es.ucm.fdi.dalgs.group.service.GroupService.java

@PreAuthorize("hasPermission(#group, 'WRITE') or hasPermission(#group, 'ADMINISTRATION')")
@Transactional(readOnly = false)/*from ww w.j av a 2  s  .  co  m*/
public ResultClass<Boolean> uploadUserCVS(Group group, UploadForm upload, String typeOfUser, Locale locale) {

    ResultClass<Boolean> result = new ResultClass<>();
    if (!upload.getFileData().isEmpty()) {
        CsvPreference prefers = new CsvPreference.Builder(upload.getQuoteChar().charAt(0),
                upload.getDelimiterChar().charAt(0), upload.getEndOfLineSymbols()).build();

        List<User> list = null;
        try {
            FileItem fileItem = upload.getFileData().getFileItem();
            UserCSV userUpload = new UserCSV();
            list = userUpload.readCSVUserToBean(fileItem.getInputStream(), upload.getCharset(), prefers,
                    typeOfUser);
            if (list == null) {

                result.setHasErrors(true);
                result.getErrorsList().add(messageSource.getMessage("error.params", null, locale));

            } else {
                if (serviceUser.persistListUsers(group, list).getSingleElement() && list != null) { // Added
                    list = (List<User>) serviceUser.getListUsersWithId(group, list); // correctly

                    //            ResultClass<Boolean> success = new ResultClass<Boolean>();
                    if (typeOfUser.equalsIgnoreCase("ROLE_PROFESSOR")) {

                        result = setProfessors(group, group.getId(), group.getCourse().getId(),
                                group.getCourse().getAcademicTerm().getId(), list);
                    } else if (typeOfUser.equalsIgnoreCase("ROLE_STUDENT")) {
                        // group.setStudents(list);
                        result = setStudents(group, group.getId(), group.getCourse().getId(),
                                group.getCourse().getAcademicTerm().getId(), list);

                    } else
                        result.setSingleElement(false);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
            result.setSingleElement(false);
        } catch (final IllegalArgumentException e) {
            e.printStackTrace();
            result.setSingleElement(false);
        }
    } else {
        result.setHasErrors(true);
        result.getErrorsList().add(messageSource.getMessage("error.fileEmpty", null, locale));
    }
    return result;
}

From source file:inet.util.FileStorage.java

public List<File> storage(String key) throws Exception {

    List<FileItem> fileItems = multipartRequest.getFileItems(key);
    List<File> files = new ArrayList<File>();
    File file;/*from   www.j av  a 2s .c  om*/
    if (fileItems != null) {
        for (FileItem fileItem : fileItems) {
            if (fileItem == null || fileItem.getContentType().equals("application/octet-stream")) {
                return null;
            } else {
                file = new File();
                int read = 0;
                byte[] bytes = new byte[1024];

                String fileName = targe + System.currentTimeMillis() + fileItem.getName();
                String realFile = realPath + fileName;

                OutputStream outputStream = new FileOutputStream(realFile);
                InputStream inputStream = fileItem.getInputStream();

                while ((read = inputStream.read(bytes)) != -1) {
                    outputStream.write(bytes, 0, read);
                }

                outputStream.close();
                inputStream.close();
                file.setUrl(realUri + fileName);
            }
            files.add(file);
        }
        return files;
    } else {
        return null;
    }
}

From source file:hudson.plugins.sidebar_link.SidebarLinkPlugin.java

/**
 * Receive file upload from startUpload.jelly.
 * File is placed in $JENKINS_HOME/userContent directory.
 *///from   ww  w. ja  v a 2  s  .  com
public void doUpload(StaplerRequest req, StaplerResponse rsp)
        throws IOException, ServletException, InterruptedException {
    Hudson hudson = Hudson.getInstance();
    hudson.checkPermission(Hudson.ADMINISTER);
    FileItem file = req.getFileItem("linkimage.file");
    String error = null, filename = null;
    if (file == null || file.getName().isEmpty())
        error = Messages.NoFile();
    else {
        filename = "userContent/"
                // Sanitize given filename:
                + file.getName().replaceFirst(".*/", "").replaceAll("[^\\w.,;:()#@!=+-]", "_");
        FilePath imageFile = hudson.getRootPath().child(filename);
        if (imageFile.exists())
            error = Messages.DupName();
        else {
            imageFile.copyFrom(file.getInputStream());
            imageFile.chmod(0644);
        }
    }
    rsp.setContentType("text/html");
    rsp.getWriter().println((error != null ? error : Messages.Uploaded("<tt>/" + filename + "</tt>"))
            + " <a href=\"javascript:history.back()\">" + Messages.Back() + "</a>");
}

From source file:com.thejustdo.servlet.CargaMasivaServlet.java

/**
 * Given a stream containing the file to process, it builds all the info
 * related to the beneficiaries for dream boxes
 *
 * @param fi Contains the info related to the file to be processed. <br />
 * <strong>File structure</strong> <ul> <li>0: Identification number.</li>
 * <li>1: Identification type.</li> <li>2: Age.</li> <li>3: Given
 * box.</li> <li>4: Last name.</li> <li>5: Second last name.</li> </ul>
 * @return The list of beneficiaries./*from   w  w w. jav a2 s. c  om*/
 */
private List<Beneficiary> processFile(FileItem fi) throws IOException {
    List<Beneficiary> answer = new ArrayList<Beneficiary>();

    // 1. Getting the input stream with the file.
    InputStream stream = fi.getInputStream();
    InputStreamReader isr = new InputStreamReader(stream, "ISO-8859-1");
    BufferedReader reader = new BufferedReader(isr);

    // 2. Parsing line by line.
    String line;
    String parts[];
    Beneficiary b;
    while (reader.ready()) {
        line = reader.readLine();
        // Building the beneficiaries.
        if ((line == null) || ("".equalsIgnoreCase(line.trim()))) {
            continue;
        }

        // 2.1 Spliting parts.
        log.info(String.format("Found line: %s", line));
        parts = line.split(",");
        // 2.2 Building the new elemento of response.
        b = new Beneficiary();
        //b.setIdNumber(Long.parseLong(parts[0]));
        //b.setDocumentType(parts[1]);
        //b.setAge(Integer.parseInt(parts[2]));
        b.setGivenNames(parts[0]);
        b.setLastName(parts[1]);
        //b.setSecondLastName(parts[2]);

        // 2.3 Adding the element to the answer.
        answer.add(b);
    }

    // n. Clossing the stream.
    stream.close();

    return answer;
}

From source file:ai.h2o.servicebuilder.CompilePojoServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    File tmp = null;/* w  w  w.ja v  a 2 s  .  c  o  m*/
    try {
        //create temp directory
        tmp = createTempDirectory("compilePojo");
        logger.info("tmp dir {}", tmp);

        // get input files
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        List<String> pojofiles = new ArrayList<String>();
        String jarfile = null;
        for (FileItem i : items) {
            String field = i.getFieldName();
            String filename = i.getName();
            if (filename != null && filename.length() > 0) {
                if (field.equals("pojo")) {
                    pojofiles.add(filename);
                }
                if (field.equals("jar")) {
                    jarfile = filename;
                }
                FileUtils.copyInputStreamToFile(i.getInputStream(), new File(tmp, filename));
            }
        }
        if (pojofiles.isEmpty() || jarfile == null)
            throw new Exception("need pojofile(s) and jarfile");

        //  create output directory
        File out = new File(tmp.getPath(), "out");
        boolean mkDirResult = out.mkdir();
        if (!mkDirResult)
            throw new Exception("Can't create output directory (out)");

        if (servletPath == null)
            throw new Exception("servletPath is null");

        copyExtraFile(servletPath, "extra" + File.separator, tmp, "H2OPredictor.java", "H2OPredictor.java");
        FileUtils.copyDirectoryToDirectory(
                new File(servletPath, "extra" + File.separator + "WEB-INF" + File.separator + "lib"), tmp);
        copyExtraFile(servletPath, "extra" + File.separator, new File(out, "META-INF"), "MANIFEST.txt",
                "MANIFEST.txt");

        // Compile the pojo(s)
        for (String pojofile : pojofiles) {
            runCmd(tmp,
                    Arrays.asList("javac", "-target", JAVA_TARGET_VERSION, "-source", JAVA_TARGET_VERSION,
                            "-J-Xmx" + MEMORY_FOR_JAVA_PROCESSES, "-cp", jarfile + ":lib/*", "-d", "out",
                            pojofile, "H2OPredictor.java"),
                    "Compilation of pojo failed: " + pojofile);
        }

        // create jar result file
        runCmd(out, Arrays.asList("jar", "xf", tmp + File.separator + jarfile),
                "jar extraction of h2o-genmodel failed");

        runCmd(out,
                Arrays.asList("jar", "xf", tmp + File.separator + "lib" + File.separator + "gson-2.6.2.jar"),
                "jar extraction of gson failed");

        runCmd(out, Arrays.asList("jar", "cfm", tmp + File.separator + "result.jar",
                "META-INF" + File.separator + "MANIFEST.txt", "."), "jar creation failed");

        byte[] resjar = IOUtils.toByteArray(new FileInputStream(tmp + File.separator + "result.jar"));
        if (resjar == null)
            throw new Exception("Can't create jar of compiler output");

        logger.info("jar created, size {}", resjar.length);

        // send jar back
        ServletOutputStream sout = response.getOutputStream();
        response.setContentType("application/octet-stream");
        String outputFilename = pojofiles.get(0).replace(".java", "");
        response.setHeader("Content-disposition", "attachment; filename=" + outputFilename + ".jar");
        response.setContentLength(resjar.length);
        sout.write(resjar);
        sout.close();
        response.setStatus(HttpServletResponse.SC_OK);
    } catch (Exception e) {
        logger.error("post failed", e);
        // send the error message back
        String message = e.getMessage();
        if (message == null)
            message = "no message";
        logger.error(message);
        response.getWriter().write(message);
        response.getWriter().write(Arrays.toString(e.getStackTrace()));
        response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
    } finally {
        // if the temp directory is still there we delete it
        try {
            if (tmp != null && tmp.exists())
                FileUtils.deleteDirectory(tmp);
        } catch (IOException e) {
            logger.error("Can't delete tmp directory");
        }
    }
}

From source file:com.zlfun.framework.excel.ExcelUtils.java

public static <T> List<T> httpInput(HttpServletRequest request, Class<T> clazz) {
    List<T> result = new ArrayList<T>();
    //??  //from  w  w  w  .j  ava2 s  .co  m
    DiskFileItemFactory factory = new DiskFileItemFactory();
    //??  
    String path = request.getSession().getServletContext().getRealPath("/");
    factory.setRepository(new File(path));
    // ??   
    factory.setSizeThreshold(1024 * 1024);
    ServletFileUpload upload = new ServletFileUpload(factory);

    try {
        //?  
        List<FileItem> list = (List<FileItem>) upload.parseRequest(request);

        for (FileItem item : list) {
            //????  
            String name = item.getFieldName();

            //? ??  ?  
            if (item.isFormField()) {
                //? ??????   
                String value = item.getString();

                request.setAttribute(name, value);
            } //? ??    
            else {
                /**
                 * ?? ??
                 */
                //???  
                String value = item.getName();
                //????  

                fill(clazz, result, value, item.getInputStream());

                //??
            }
        }

    } catch (FileUploadException ex) {
        // TODO Auto-generated catch block      excel=null;
        Logger.getLogger(ExcelUtils.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {

        Logger.getLogger(ExcelUtils.class.getName()).log(Level.SEVERE, null, ex);
    }
    return result;
}