Example usage for org.apache.commons.fileupload.disk DiskFileItem getString

List of usage examples for org.apache.commons.fileupload.disk DiskFileItem getString

Introduction

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

Prototype

public String getString(final String charset) throws UnsupportedEncodingException 

Source Link

Document

Returns the contents of the file as a String, using the specified encoding.

Usage

From source file:org.debux.webmotion.server.handler.ParametersMultipartHandler.java

@Override
public void handle(Mapping mapping, Call call) {
    HttpContext context = call.getContext();
    HttpServletRequest request = context.getRequest();

    Map<String, Object> extractParameters = call.getExtractParameters();

    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if (isMultipart) {
        FileItemFactory fileItemFactory = new DiskFileItemFactory(0, null);
        ServletFileUpload upload = new ServletFileUpload(fileItemFactory);

        HttpSession session = request.getSession();
        if (session != null) {
            log.debug("Set file upload listener");
            FileProgressListener listener = new FileProgressListener();
            upload.setProgressListener(listener);
            session.setAttribute(FileProgressListener.SESSION_ATTRIBUTE_NAME, listener);
            call.setFileUploadRequest(true);
        } else {/*  www.  j  ava  2 s  . co m*/
            log.warn("No session for file upload listener");
        }

        try {
            List<DiskFileItem> items = upload.parseRequest(request);
            for (DiskFileItem item : items) {
                String fieldName = item.getFieldName();

                if (item.isFormField()) {
                    String fieldValue;
                    try {
                        fieldValue = item.getString("UTF-8");
                    } catch (UnsupportedEncodingException e) {
                        fieldValue = item.getString();
                    }

                    String[] values = (String[]) extractParameters.get(fieldName);
                    if (values == null) {
                        values = new String[] { fieldValue };
                        extractParameters.put(fieldName, values);

                    } else {
                        values = (String[]) ArrayUtils.add(values, fieldValue);
                        extractParameters.put(fieldName, values);
                    }

                } else {
                    UploadFile uploadFile = new UploadFile();

                    File file = item.getStoreLocation();
                    uploadFile.setFile(file);

                    String fileName = item.getName();
                    uploadFile.setName(fileName);

                    long fileSize = item.getSize();
                    uploadFile.setSize(fileSize);

                    String fileType = item.getContentType();
                    uploadFile.setContentType(fileType);

                    extractParameters.put(fieldName, uploadFile);
                }
            }
        } catch (FileUploadException fue) {
            throw new WebMotionException("Error during upload file on server", fue);
        }

    } else {
        Map<String, String[]> parameters = context.getParameters();
        extractParameters.putAll(parameters);
    }
}