Example usage for org.apache.commons.fileupload.disk DiskFileItemFactory DiskFileItemFactory

List of usage examples for org.apache.commons.fileupload.disk DiskFileItemFactory DiskFileItemFactory

Introduction

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

Prototype

public DiskFileItemFactory() 

Source Link

Document

Constructs an unconfigured instance of this class.

Usage

From source file:com.patrolpro.servlet.UploadJasperReportServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from w w  w  .  jav a  2  s .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 {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        String companyId = request.getParameter("companyId");

        FileItem fileData = null;
        Integer mobileFormId = null;
        List<FileItem> fields = upload.parseRequest(request);
        for (int f = 0; f < fields.size(); f++) {
            if (fields.get(f).getFieldName().equals("file_data")) {
                fileData = fields.get(f);
            } else if (fields.get(f).getFieldName().equals("mobileFormId")) {
                mobileFormId = Integer.parseInt(fields.get(f).getString());
            }
        }
        if (fileData == null || !fileData.getName().endsWith(".jrxml")) {
            out.write("{\"error\": \"Invalid file type! Please select a jrxml (Jasper Report) file!\"}");
            out.flush();
        } else {
            InputStream iStream = fileData.getInputStream();

            MobileFormService mobileService = new MobileFormService(companyId);

            ByteArrayOutputStream bOutput = new ByteArrayOutputStream();
            byte[] buffer = new byte[2048];
            int bufCount = 0;
            while ((bufCount = iStream.read(buffer)) > -1) {
                bOutput.write(buffer, 0, bufCount);
            }
            bOutput.flush();

            byte[] rawData = bOutput.toByteArray();
            JasperReport jasperReport = JasperCompileManager.compileReport(new ByteArrayInputStream(rawData));
            JRParameter[] params = jasperReport.getParameters();
            HashMap<String, Class> reportParams = new HashMap<String, Class>();
            for (int p = 0; p < params.length; p++) {
                JRParameter param = params[p];
                int searchPos = -1;
                for (int a = 0; a < MobileForms.getReservedIdentifiers().length; a++) {
                    if (MobileForms.getReservedIdentifiers()[a].equals(param.getName())) {
                        searchPos = a;
                    }
                }
                if (!param.isSystemDefined() && searchPos < 0 && !param.getName().startsWith("nfc_l_")
                        && !param.getName().endsWith("_loc")) {
                    reportParams.put(param.getName(), param.getValueClass());
                }
            }

            ByteArrayOutputStream oStream = new ByteArrayOutputStream();

            JasperCompileManager.writeReportToXmlStream(jasperReport, oStream);
            //JasperCompileManager.compileReportToStream(new ByteArrayInputStream(rawData), oStream);

            MobileForms selectedForm = mobileService.getForm(mobileFormId);
            selectedForm.setReportData(oStream.toByteArray());
            mobileService.saveForm(selectedForm);

            Iterator<String> keyIterator = reportParams.keySet().iterator();
            ArrayList<MobileFormData> currData = mobileService.getFormData(selectedForm.getMobileFormsId());
            int numberInserted = 1;
            while (keyIterator.hasNext()) {
                String key = keyIterator.next();

                boolean hasData = false;
                for (int d = 0; d < currData.size(); d++) {
                    if (currData.get(d).getDataLabel().equals(key) && currData.get(d).getActive()) {
                        hasData = true;
                    }
                }
                if (!hasData) {
                    MobileFormData formData = new MobileFormData();
                    formData.setActive(true);
                    formData.setMobileFormsId(selectedForm.getMobileFormsId());
                    formData.setDataLabel(key);
                    if (reportParams.get(key) == Date.class) {
                        formData.setDateType(5);
                    } else if (reportParams.get(key) == InputStream.class) {
                        formData.setDateType(8);
                    } else if (reportParams.get(key) == Boolean.class) {
                        formData.setDateType(3);
                    } else {
                        formData.setDateType(1);
                    }
                    formData.setOrdering(currData.size() + numberInserted);
                    mobileService.saveFormData(formData);

                    numberInserted++;
                }
            }

            out.write("{}");
            out.flush();
        }
    } catch (JRException jr) {
        out.write("{\"error\": \""
                + jr.getMessage().replaceAll("\n", "").replaceAll(":", "").replaceAll("\t", "") + "\"}");
        out.flush();
    } catch (Exception e) {
        out.write("{\"error\": \"Exception uploading report, " + e + "\"}");
        out.flush();
    } finally {
        out.close();
    }
}

From source file:com.king.platform.net.http.integration.MultiPart.java

@Test
public void postMultiPart() throws Exception {

    AtomicReference<List<FileItem>> partReferences = new AtomicReference<>();
    AtomicReference<Exception> exceptionReference = new AtomicReference<>();

    integrationServer.addServlet(new HttpServlet() {
        @Override//w  w w . j  a  v a 2 s . co m
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());

            try {
                List<FileItem> fileItems = servletFileUpload.parseRequest(req);
                partReferences.set(fileItems);
            } catch (FileUploadException e) {
                exceptionReference.set(e);
            }

        }
    }, "/testMultiPart");

    httpClient
            .createPost(
                    "http://localhost:" + port + "/testMultiPart")
            .idleTimeoutMillis(
                    0)
            .totalRequestTimeoutMillis(
                    0)
            .content(
                    new MultiPartBuilder()
                            .addPart(
                                    MultiPartBuilder
                                            .create("text1", "Message 1",
                                                    StandardCharsets.ISO_8859_1)
                                            .contentType("multipart/form-data"))
                            .addPart(MultiPartBuilder.create("binary1", new byte[] { 0x00, 0x01, 0x02 })
                                    .contentType("application/octet-stream").charset(StandardCharsets.UTF_8)
                                    .fileName("application.bin"))
                            .addPart(MultiPartBuilder.create("text2", "Message 2", StandardCharsets.ISO_8859_1))
                            .build())
            .build().execute().join();

    assertNull(exceptionReference.get());

    List<FileItem> fileItems = partReferences.get();
    FileItem fileItem = fileItems.get(1);
    assertEquals("application/octet-stream; charset=UTF-8", fileItem.getContentType());
    assertEquals("binary1", fileItem.getFieldName());
    assertEquals("application.bin", fileItem.getName());

}

From source file:com.radio.svc.controllers.admin.AddFeatureSSDController.java

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    //To change body of generated methods, choose Tools | Templates.
    String[] ssdFeatures = null;//from   www  .ja  v a  2 s. c  o m
    FileItem ssdFeatureFile = null;
    String songName = null;

    if (ServletFileUpload.isMultipartContent(request)) {

        try {
            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
            for (FileItem item : multiparts) {
                if (!item.isFormField()) {

                    if (item.getFieldName().equals("ssdFeatureUpload")) {
                        ssdFeatureFile = item;

                    }

                } else {
                    if (item.getFieldName().equals("songname")) {
                        songName = item.getString();
                        //System.out.println( "Album Name  " + item.getString() );
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    ModelAndView model;
    model = new ModelAndView("/admin/featureSSDAdmin");
    model.addObject("controller", "addfeaturessd");
    featureSSDServiceProvider.addNewFeatureSSD(songName, ssdFeatureFile);
    model.addObject("msg", "success");

    return model;

}

From source file:com.znsx.cms.web.controller.LicenseController.java

@InterfaceDescription(logon = false, method = "Upload_License", cmd = "2151")
@RequestMapping("/upload_license.json")
public void uploadLicense(HttpServletRequest request, HttpServletResponse response) throws Exception {
    // ?/*from w w  w  .  ja  v a 2  s . c  om*/
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if (isMultipart) {
        // 
        ResourceVO resource = null;
        // ?Filedata?
        boolean uploadFlag = false;
        // ?
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = upload.parseRequest(request);
        Iterator iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            String fieldName = item.getFieldName();

            // ??sessionId
            if ("sessionId".equals(fieldName)) {
                String sessionId = item.getString();
                if (StringUtils.isBlank(sessionId)) {
                    throw new BusinessException(ErrorCode.PARAMETER_NOT_FOUND, "missing [sessionId]");
                }
                // ?sessionId
                resource = userManager.checkSession(sessionId);
            }
            // ?
            if ("Filedata".equals(fieldName)) {
                uploadFlag = true;
                InputStream in = item.getInputStream();
                License lic = LicenceUtil.parseLicense(in);

                licenseManager.checkLicense(lic);
                String id = licenseManager.upload(lic);

                // ??
                SysLog log = new SysLog();
                log.setResourceId(resource.getId());
                log.setResourceName(resource.getName());
                log.setResourceType(resource.getType());
                log.setTargetId(id.toString());
                log.setTargetName("License");
                log.setTargetType("License");
                log.setLogTime(System.currentTimeMillis());
                log.setOperationType("uploadLicense");
                log.setOperationName("License");
                log.setOperationCode("2151");
                log.setSuccessFlag(ErrorCode.SUCCESS);
                log.setCreateTime(System.currentTimeMillis());
                log.setOrganId(resource.getOrganId());
                sysLogManager.batchLog(log);
            }
        }
        if (!uploadFlag) {
            throw new BusinessException(ErrorCode.MISSING_PARAMETER_FILEDATA,
                    "Parameter [Filedata] not found !");
        }
    } else {
        throw new BusinessException(ErrorCode.NOT_MULTIPART_REQUEST, "Not multipart request !");
    }

    // 
    BaseDTO dto = new BaseDTO();
    dto.setCmd("2151");
    dto.setMethod("Upload_License");
    writePage(response, dto);
}

From source file:controller.uploadPergunta9.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//  w  w w  .ja  v a  2  s.c  om
 *
 * @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 {

    String idLocal = (String) request.getParameter("idLocal");
    String idModelo = (String) request.getParameter("idModelo");
    String expressaoModelo = (String) request.getParameter("expressaoModelo");
    String nomeAutorModelo = (String) request.getParameter("nomeAutorModelo");
    String equacaoAjustada = (String) request.getParameter("equacaoAjustada");
    String idEquacaoAjustada = (String) request.getParameter("idEquacaoAjustada");

    String name = "";
    //process only if its multipart content
    if (ServletFileUpload.isMultipartContent(request)) {
        try {
            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

            for (FileItem item : multiparts) {
                if (!item.isFormField()) {
                    name = new File(item.getName()).getName();
                    //                        item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                    item.write(new File(AbsolutePath + File.separator + name));
                }
            }

            //File uploaded successfully
            request.setAttribute("message", "File Uploaded Successfully");
        } catch (Exception ex) {
            request.setAttribute("message", "File Upload Failed due to " + ex);
        }

    } else {
        request.setAttribute("message", "Sorry this Servlet only handles file upload request");
    }
    equacaoAjustada = equacaoAjustada.replace("+", "%2B");
    expressaoModelo = expressaoModelo.replace("+", "%2B");
    RequestDispatcher view = getServletContext()
            .getRequestDispatcher("/novoLocalPergunta9?id=" + idLocal + "&nomeArquivo=" + name + "&idModelo="
                    + idModelo + "&equacaoAjustada=" + equacaoAjustada + "&expressaoModelo=" + expressaoModelo
                    + "&nomeAutorModelo=" + nomeAutorModelo + "&idEquacaoAjustada=" + idEquacaoAjustada);
    view.forward(request, response);

    //        request.getRequestDispatcher("/novoLocalPergunta3?id="+idLocal+"&fupload=1&nomeArquivo="+name).forward(request, response);
    // request.getRequestDispatcher("/novoLocalPergunta4?id="+idLocal+"&nomeArquivo="+name).forward(request, response);

}

From source file:com.example.web.UploadServlet.java

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

    // Check that we have a file upload request
    isMultipart = ServletFileUpload.isMultipartContent(request);
    //response.setContentType("text/html");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    if (!isMultipart) {

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet upload</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<p>No file uploaded</p>");
        out.println("</body>");
        out.println("</html>");

        return;//from  www  .  jav  a2 s . c om
    }

    DiskFileItemFactory factory = new DiskFileItemFactory();
    // maximum size that will be stored in memory
    factory.setSizeThreshold(maxMemSize);
    // Location to save data that is larger than maxMemSize.
    factory.setRepository(new File("c:\\temp"));

    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
    // maximum file size to be uploaded.
    upload.setSizeMax(maxFileSize);

    try {
        // Parse the request to get file items.
        List fileItems = upload.parseRequest(request);

        // Process the uploaded file items
        Iterator i = fileItems.iterator();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet upload</title>");
        out.println("</head>");
        out.println("<body>");

        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            if (!fi.isFormField()) {
                // Get the uploaded file parameters
                String fieldName = fi.getFieldName();
                String fileName = fi.getName();
                String contentType = fi.getContentType();
                boolean isInMemory = fi.isInMemory();
                long sizeInBytes = fi.getSize();
                // Write the file
                if (fileName.lastIndexOf("\\") >= 0) {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\")));
                } else {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1));
                }
                fi.write(file);
                out.println("Uploaded Filename: " + fileName + "<br>");
            }
        }
        out.println("</body>");
        out.println("</html>");

    } catch (Exception ex) {
        System.out.println(ex);
    }
}

From source file:Control.HandleTest.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//  w  ww.  j a  v a 2  s.co  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");
    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */
        String path = getClass().getResource("/").getPath();

        if (Paths.path == null) {
            File file = new File(path + "test.html");
            path = file.getParent();
            File file1 = new File(path + "test1.html");
            path = file1.getParent();
            File file2 = new File(path + "test1.html");
            path = file2.getParent();
            Paths.path = path;
        } else {
            path = Paths.path;
        }
        String name;
        if (ServletFileUpload.isMultipartContent(request)) {
            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
            for (FileItem item : multiparts) {
                if (!item.isFormField()) {
                    name = new File(item.getName()).getName();
                    // temp.logoImage = Paths.logoPath + name;
                    String FilePath = path + Paths.logoPathStore + name;
                    item.write(new File(FilePath));
                }
            }
        }
    } catch (Exception e) {

    }
}

From source file:br.univali.celine.lms.utils.MultipartRequestProcessor.java

public void processRequest(HttpServletRequest request) {

    try {/*from   www . j  a v  a2 s.  c  o m*/

        parameters = new HashMap<String, Object>();
        files = new ArrayList<FileItem>();

        DiskFileItemFactory dfif = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(dfif);

        upload.setProgressListener(progressListener);
        List<?> items = upload.parseRequest(request);
        Iterator<?> iter = items.iterator();

        while (iter.hasNext()) {

            FileItem item = (FileItem) iter.next();

            if (item.isFormField())
                parameters.put(item.getFieldName(), item.getString());

            else
                files.add(item);
        }

    } catch (Exception e) {

        LMSLogger.throwing(e);

    }

}

From source file:com.surevine.alfresco.audit.listeners.PerishableUploadDocumentAuditEventListener.java

@Override
protected void populateSecondaryAuditItems(List<Auditable> events, HttpServletRequest request,
        HttpServletResponse response, JSONObject postContent) throws JSONException {
    // Create a ServletFileUpload instance to parse the form
    ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
    upload.setHeaderEncoding("UTF-8");

    if (ServletFileUpload.isMultipartContent(request)) {
        try {/*from   w w w . java2 s .  c om*/
            String perishableReason = null;
            String tags = null;

            for (final Object o : upload.parseRequest(request)) {
                FileItem item = (FileItem) o;

                if (item.isFormField() && "perishable".equals(item.getFieldName())) {
                    perishableReason = item.getString();
                } else if (item.isFormField() && "tags".equals(item.getFieldName())) {
                    tags = item.getString();
                }
            }

            Auditable primaryEvent = events.get(0);

            // If this is a site with perish reasons configured...
            if (_perishabilityLogic.getPerishReasons(primaryEvent.getSite()).size() > 0) {
                AuditItem item = new AuditItem();

                setGenericAuditMetadata(item, request);

                // Copy any relevant fields from the primary audit event
                item.setNodeRef(primaryEvent.getNodeRef());
                item.setVersion(primaryEvent.getVersion());
                item.setSecLabel(primaryEvent.getSecLabel());
                item.setSource(primaryEvent.getSource());

                item.setAction(MarkPerishableAuditEventListener.ACTION);

                if (!StringUtils.isBlank(perishableReason)) {
                    item.setDetails(perishableReason);
                } else {
                    item.setDetails(MarkPerishableAuditEventListener.NO_PERISHABLE_MARK);
                }

                if (tags != null) {
                    item.setTags(StringUtils.join(tags.trim().split(" "), ','));
                }

                events.add(item);
            }
        } catch (FileUploadException e) {
            logger.error("Error while parsing request form", e);
        }
    }
}

From source file:echopoint.tucana.JakartaCommonsFileUploadProvider.java

/**
 * @see UploadSPI#handleUpload(nextapp.echo.webcontainer.Connection ,
 *      FileUploadSelector, String, UploadProgress)
 *///from   www .j a va 2 s.c om
@SuppressWarnings({ "ThrowableInstanceNeverThrown" })
public void handleUpload(final Connection conn, final FileUploadSelector uploadSelect, final String uploadIndex,
        final UploadProgress progress) throws Exception {
    final ApplicationInstance app = conn.getUserInstance().getApplicationInstance();

    final DiskFileItemFactory itemFactory = new DiskFileItemFactory();
    itemFactory.setRepository(getDiskCacheLocation());
    itemFactory.setSizeThreshold(getMemoryCacheThreshold());

    String encoding = conn.getRequest().getCharacterEncoding();
    if (encoding == null) {
        encoding = "UTF-8";
    }

    final ServletFileUpload upload = new ServletFileUpload(itemFactory);
    upload.setHeaderEncoding(encoding);
    upload.setProgressListener(new UploadProgressListener(progress));

    long sizeLimit = uploadSelect.getUploadSizeLimit();
    if (sizeLimit == 0)
        sizeLimit = getFileUploadSizeLimit();
    if (sizeLimit != NO_SIZE_LIMIT) {
        upload.setSizeMax(sizeLimit);
    }

    String fileName = null;
    String contentType = null;

    try {
        final FileItemIterator iter = upload.getItemIterator(conn.getRequest());
        if (iter.hasNext()) {
            final FileItemStream stream = iter.next();

            if (!stream.isFormField()) {
                fileName = FilenameUtils.getName(stream.getName());
                contentType = stream.getContentType();

                final Set<String> types = uploadSelect.getContentTypeFilter();
                if (!types.isEmpty()) {
                    if (!types.contains(contentType)) {
                        app.enqueueTask(uploadSelect.getTaskQueue(), new InvalidContentTypeRunnable(
                                uploadSelect, uploadIndex, fileName, contentType, progress));
                        return;
                    }
                }

                progress.setStatus(Status.inprogress);
                final FileItem item = itemFactory.createItem(fileName, contentType, false, stream.getName());
                item.getOutputStream(); // initialise DiskFileItem internals

                uploadSelect.notifyCallback(
                        new UploadStartEvent(uploadSelect, uploadIndex, fileName, contentType, item.getSize()));

                IOUtils.copy(stream.openStream(), item.getOutputStream());

                app.enqueueTask(uploadSelect.getTaskQueue(),
                        new FinishRunnable(uploadSelect, uploadIndex, fileName, item, progress));

                return;
            }
        }

        app.enqueueTask(uploadSelect.getTaskQueue(), new FailRunnable(uploadSelect, uploadIndex, fileName,
                contentType, new RuntimeException("No multi-part content!"), progress));
    } catch (final FileUploadBase.SizeLimitExceededException e) {
        app.enqueueTask(uploadSelect.getTaskQueue(), new FailRunnable(uploadSelect, uploadIndex, fileName,
                contentType, new UploadSizeLimitExceededException(e), progress));
    } catch (final FileUploadBase.FileSizeLimitExceededException e) {
        app.enqueueTask(uploadSelect.getTaskQueue(), new FailRunnable(uploadSelect, uploadIndex, fileName,
                contentType, new UploadSizeLimitExceededException(e), progress));
    } catch (final MultipartStream.MalformedStreamException e) {
        app.enqueueTask(uploadSelect.getTaskQueue(),
                new CancelRunnable(uploadSelect, uploadIndex, fileName, contentType, e, progress));
    }
}