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

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

Introduction

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

Prototype

public void setHeaderEncoding(String encoding) 

Source Link

Document

Specifies the character encoding to be used when reading the headers of individual parts.

Usage

From source file:servletExperimento.tratamento.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//from www.ja v a 2  s.  com
 *
 * @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();
    HttpSession sessao = request.getSession(false);
    String tipo = (String) sessao.getAttribute("tipoTratamento");

    if (tipo.equals("adicionar")) {

        try {

            boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
            if (isMultiPart) {
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upload = new ServletFileUpload(factory);
                out.print(upload.getHeaderEncoding());
                upload.setHeaderEncoding("UTF-8");
                out.print(upload.getHeaderEncoding());
                List items;

                ArrayList<String> arquivos = new ArrayList<String>();

                String caminho = getServletContext().getRealPath("/experimentador/experimento/tecnica") + "/";

                items = upload.parseRequest(request);
                Iterator iter = items.iterator();
                String desc = null, nome = null, tipoTec = null, art = null;
                while (iter.hasNext()) {

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

                    if (item.isFormField()) {
                        String name = item.getFieldName();
                        String value = new String(item.getString().getBytes("ISO-8859-1"), "UTF-8");

                        if (value.equals("") || value == null) {
                            response.sendRedirect("experimentador/experimento/plano_tecnica.jsp?msg=1");
                        } else {
                            if (name.equals("nome")) {
                                nome = value;
                            }
                            if (name.equals("descricao")) {
                                desc = value;
                            }
                            if (name.equals("tipo_tecnica")) {
                                tipoTec = value;
                            }
                            if (name.equals("rdArtefato")) {
                                art = value;
                            }
                            if (name.equals("idexperimento")) {
                                //                                    tecnica.setExperimento(Controladores.Controlador.getExperimentoAtual());
                                caminho = caminho + "tecnica_" + value + "/"; //?lvaro: 2\ -> /
                            }
                        }
                    } else {
                        if (!item.getName().equals("")) {
                            String path = new String();
                            path = item.getName();
                            this.inserirImagemDiretorio(item, caminho);
                            arquivos.add(path);
                        }
                    }
                }

                if (desc != null && nome != null) {

                    if (Controladores.Controlador.criarTratamento(nome, desc, tipoTec, art)) {
                        if (!arquivos.isEmpty()) {
                            int tam = arquivos.size();
                            for (int t = 0; t < tam; t++) {
                                ArquivoTratamento arq = new ArquivoTratamento();

                                //arq.setTratamento(tecnica); -> tecnica
                                //arq.setPath_arquivo(arquivos.get(t));
                                Controladores.Controlador.criarArquivoTratamento(
                                        Controladores.Controlador.listarTratamentos()
                                                .get(Controladores.Controlador.listarTratamentos().size() - 1),
                                        arquivos.get(t));
                            }
                        }
                        response.sendRedirect("experimentador/experimento/plano_tecnica.jsp?msg=0");
                    } else {
                        response.sendRedirect("experimentador/experimento/plano_tecnica.jsp?msg=2");
                    }

                }

            }

        } catch (FileUploadException ex) {
            Logger.getLogger(tratamento.class.getName()).log(Level.SEVERE, null, ex);

        } catch (Exception ex) {
            Logger.getLogger(tratamento.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            out.close();
        }
    }

}

From source file:talend.ext.images.server.ImageUploadServlet.java

private String onUpload(HttpServletRequest request, ImageUploadInfo imageUploadInfo) {
    try {//from   www. j  av a2s  .  c om
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart) {

            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(4096);
            factory.setRepository(new File(ImageServerInfo.getInstance().getTempPath()));

            ServletFileUpload sevletFileUpload = new ServletFileUpload(factory);
            sevletFileUpload.setSizeMax(4 * 1024 * 1024);
            sevletFileUpload.setHeaderEncoding("utf8"); //$NON-NLS-1$
            ProgressListener progressListener = new ProgressListener() {

                @Override
                public void update(long pBytesRead, long pContentLength, int pItems) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("We are currently reading item " + pItems); //$NON-NLS-1$
                        if (pContentLength == -1) {
                            logger.debug("So far, " + pBytesRead + " bytes have been read."); //$NON-NLS-1$//$NON-NLS-2$
                        } else {
                            logger.debug("So far, " + pBytesRead + " of " + pContentLength //$NON-NLS-1$//$NON-NLS-2$
                                    + " bytes have been read."); //$NON-NLS-1$
                        }
                    }
                }
            };
            sevletFileUpload.setProgressListener(progressListener);

            List<FileItem> fileItems = null;

            fileItems = sevletFileUpload.parseRequest(request);

            if (fileItems != null && fileItems.size() > 0) {
                Object uploadFileItemObj = getFileItem(fileItems, defaultFilefieldName);
                if (uploadFileItemObj != null) {
                    FileItem uploadFileItem = (FileItem) uploadFileItemObj;

                    Object catalogNameObj = getFileItem(fileItems, defaultCatalogfieldName);
                    if (catalogNameObj != null) {
                        imageUploadInfo.targetCatalogName = (String) catalogNameObj;
                    }

                    Object fileNameObj = getFileItem(fileItems, defaultFileNamefieldName);
                    if (fileNameObj != null) {
                        imageUploadInfo.targetFileShortName = (String) fileNameObj;
                    } else {
                        String name = uploadFileItem.getName();
                        int pos = name.lastIndexOf('.');
                        if (pos != -1) {
                            name = name.substring(0, pos);
                        }
                        imageUploadInfo.targetFileShortName = name;
                    }

                    int rtnStatus = processUploadedFile(uploadFileItem, true, imageUploadInfo);

                    if (rtnStatus == 1) {
                        logger.info(imageUploadInfo.sourceFileName + " has been uploaded successfully!"); //$NON-NLS-1$
                        return buildUploadResult(true, imageUploadInfo.targetUri);
                    } else if (rtnStatus == -1) {
                        String msg = "Unavailable file type! "; //$NON-NLS-1$
                        logger.error(msg);
                        return buildUploadResult(false, msg);
                    } else if (rtnStatus == -2) {
                        String msg = "Operation rolled back, since backuping to database failed."; //$NON-NLS-1$
                        logger.error(msg);
                        return buildUploadResult(false, msg);
                    }
                }

            }

        }

    } catch (SizeLimitExceededException e) {
        logger.error("File Size Limit Exceeded Exception!", e); //$NON-NLS-1$
        return buildUploadResult(false, "File Size Limit Exceeded Exception!"); //$NON-NLS-1$
    } catch (Exception e) {
        logger.error("Exception occured during uploading!", e); //$NON-NLS-1$
        return buildUploadResult(false, "Exception occured during uploading!"); //$NON-NLS-1$
    }

    return buildUploadResult(false,
            "It seems that Upload Task has not been executed, please check your post enctype and post field name!"); //$NON-NLS-1$
}

From source file:ubic.gemma.web.util.upload.CommonsMultipartMonitoredResolver.java

@Override
public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException {
    String enc = determineEncoding(request);

    ServletFileUpload fileUpload = this.newFileUpload(request);
    DiskFileItemFactory newFactory = (DiskFileItemFactory) fileUpload.getFileItemFactory();
    fileUpload.setSizeMax(sizeMax);//from  ww  w.j  a v  a2 s  .  c  om
    newFactory.setRepository(this.uploadTempDir);
    fileUpload.setHeaderEncoding(enc);

    try {
        MultiValueMap<String, MultipartFile> multipartFiles = new LinkedMultiValueMap<>();
        Map<String, String[]> multipartParams = new HashMap<>();

        // Extract multipart files and multipart parameters.
        List<?> fileItems = fileUpload.parseRequest(request);
        for (Object fileItem1 : fileItems) {
            FileItem fileItem = (FileItem) fileItem1;
            if (fileItem.isFormField()) {
                String value;
                String fieldName = fileItem.getFieldName();

                try {
                    value = fileItem.getString(enc);
                } catch (UnsupportedEncodingException ex) {
                    logger.warn("Could not decode multipart item '" + fieldName + "' with encoding '" + enc
                            + "': using platform default");
                    value = fileItem.getString();
                }

                String[] curParam = multipartParams.get(fieldName);
                if (curParam == null) {
                    // simple form field
                    multipartParams.put(fieldName, new String[] { value });
                } else {
                    // array of simple form fields
                    String[] newParam = StringUtils.addStringToArray(curParam, value);
                    multipartParams.put(fieldName, newParam);
                }
            } else {
                // multipart file field
                MultipartFile file = new CommonsMultipartFile(fileItem);
                multipartFiles.set(file.getName(), file);
                if (logger.isDebugEnabled()) {
                    logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize()
                            + " bytes with original filename [" + file.getOriginalFilename() + "]");
                }
            }
        }
        return new DefaultMultipartHttpServletRequest(request, multipartFiles, multipartParams, null);
    } catch (FileUploadException ex) {
        return new FailedMultipartHttpServletRequest(request, ex.getMessage());
    }
}