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

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

Introduction

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

Prototype

OutputStream getOutputStream() throws IOException;

Source Link

Document

Returns an java.io.OutputStream OutputStream that can be used for storing the contents of the file.

Usage

From source file:fr.paris.lutece.portal.web.stylesheet.StyleSheetJspBeanTest.java

public void testDoModifyStyleSheetNoToken() throws AccessDeniedException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.STYLESHEET_ID, new String[] { Integer.toString(stylesheet.getId()) });
    parameters.put(Parameters.STYLESHEET_NAME, new String[] { stylesheet.getDescription() + "_mod" });
    parameters.put(Parameters.STYLES, new String[] { Integer.toString(stylesheet.getStyleId()) });
    parameters.put(Parameters.MODE_STYLESHEET, new String[] { Integer.toString(stylesheet.getModeId()) });
    Map<String, List<FileItem>> multipartFiles = new HashMap<>();
    List<FileItem> items = new ArrayList<>();
    FileItem source = new DiskFileItemFactory().createItem(Parameters.STYLESHEET_SOURCE, "application/xml",
            true, stylesheet.getDescription());
    source.getOutputStream().write("<a/>".getBytes());
    items.add(source);/*from  ww  w. j a v a  2s  .  co  m*/
    multipartFiles.put(Parameters.STYLESHEET_SOURCE, items);
    MultipartHttpServletRequest multipart = new MultipartHttpServletRequest(request, multipartFiles,
            parameters);
    try {
        instance.doModifyStyleSheet(multipart);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        StyleSheet stored = StyleSheetHome.findByPrimaryKey(stylesheet.getId());
        assertNotNull(stored);
        assertEquals(stylesheet.getDescription(), stored.getDescription());
    }
}

From source file:fr.paris.lutece.portal.web.stylesheet.StyleSheetJspBeanTest.java

/**
 * Test of doModifyStyleSheet method, of class
 * fr.paris.lutece.portal.web.stylesheet.StyleSheetJspBean.
 * /*from w  w w  .j  a  v a  2  s  .c  o m*/
 * @throws AccessDeniedException
 * @throws IOException
 */
public void testDoModifyStyleSheet() throws AccessDeniedException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.STYLESHEET_ID, new String[] { Integer.toString(stylesheet.getId()) });
    parameters.put(Parameters.STYLESHEET_NAME, new String[] { stylesheet.getDescription() + "_mod" });
    parameters.put(Parameters.STYLES, new String[] { Integer.toString(stylesheet.getStyleId()) });
    parameters.put(Parameters.MODE_STYLESHEET, new String[] { Integer.toString(stylesheet.getModeId()) });
    parameters.put(SecurityTokenService.PARAMETER_TOKEN, new String[] {
            SecurityTokenService.getInstance().getToken(request, "admin/stylesheet/modify_stylesheet.html") });
    Map<String, List<FileItem>> multipartFiles = new HashMap<>();
    List<FileItem> items = new ArrayList<>();
    FileItem source = new DiskFileItemFactory().createItem(Parameters.STYLESHEET_SOURCE, "application/xml",
            true, stylesheet.getDescription());
    source.getOutputStream().write("<a/>".getBytes());
    items.add(source);
    multipartFiles.put(Parameters.STYLESHEET_SOURCE, items);
    MultipartHttpServletRequest multipart = new MultipartHttpServletRequest(request, multipartFiles,
            parameters);

    instance.doModifyStyleSheet(multipart);
    AdminMessage message = AdminMessageService.getMessage(request);
    assertNull(message);
    StyleSheet stored = StyleSheetHome.findByPrimaryKey(stylesheet.getId());
    assertNotNull(stored);
    assertEquals(stylesheet.getDescription() + "_mod", stored.getDescription());
}

From source file:fr.paris.lutece.portal.web.stylesheet.StyleSheetJspBeanTest.java

public void testDoModifyStyleSheetInvalidToken() throws AccessDeniedException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.STYLESHEET_ID, new String[] { Integer.toString(stylesheet.getId()) });
    parameters.put(Parameters.STYLESHEET_NAME, new String[] { stylesheet.getDescription() + "_mod" });
    parameters.put(Parameters.STYLES, new String[] { Integer.toString(stylesheet.getStyleId()) });
    parameters.put(Parameters.MODE_STYLESHEET, new String[] { Integer.toString(stylesheet.getModeId()) });
    parameters.put(SecurityTokenService.PARAMETER_TOKEN, new String[] {
            SecurityTokenService.getInstance().getToken(request, "admin/stylesheet/modify_stylesheet.html")
                    + "b" });
    Map<String, List<FileItem>> multipartFiles = new HashMap<>();
    List<FileItem> items = new ArrayList<>();
    FileItem source = new DiskFileItemFactory().createItem(Parameters.STYLESHEET_SOURCE, "application/xml",
            true, stylesheet.getDescription());
    source.getOutputStream().write("<a/>".getBytes());
    items.add(source);/*from  w  ww .j  a v  a2  s. c  o  m*/
    multipartFiles.put(Parameters.STYLESHEET_SOURCE, items);
    MultipartHttpServletRequest multipart = new MultipartHttpServletRequest(request, multipartFiles,
            parameters);
    try {
        instance.doModifyStyleSheet(multipart);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        StyleSheet stored = StyleSheetHome.findByPrimaryKey(stylesheet.getId());
        assertNotNull(stored);
        assertEquals(stylesheet.getDescription(), stored.getDescription());
    }
}

From source file:it.geosolutions.opensdi.operations.OperationEngineController.java

/**
 * Obtain a temporal file item with chunked bytes
 * //from ww  w.  j a v  a  2 s  .  co  m
 * @param file
 * @param chunkedBytes
 * @param name
 * @return
 */
private FileItem getFileItem(MultipartFile file, List<byte[]> chunkedBytes, String name) {
    // Temporal file to write chunked bytes
    File outFile = FileUtils.getFile(FileUtils.getTempDirectory(), name);

    // total file size
    int sizeThreshold = 0;
    for (byte[] bytes : chunkedBytes) {
        sizeThreshold += bytes.length;
    }

    // Get file item
    FileItem fileItem = new DiskFileItem("tmpFile", file.getContentType(), false, name, sizeThreshold, outFile);
    try {

        OutputStream outputStream;
        outputStream = fileItem.getOutputStream();

        // write bytes
        for (byte[] readedBytes : chunkedBytes) {
            outputStream.write(readedBytes, 0, readedBytes.length);
        }

        // close the file
        outputStream.flush();
        outputStream.close();
    } catch (IOException e) {
        LOGGER.error("Error writing final file", e);
    } finally {
        // Remove bytes from memory
        uploadedChunks.remove(file.getName());
    }

    return fileItem;
}

From source file:fr.paris.lutece.portal.web.admin.AdminPageJspBeanTest.java

public void testDoCreateChildPageNoToken()
        throws AccessDeniedException, SizeLimitExceededException, FileUploadException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.PAGE_ID, new String[] { Integer.toString(_page.getId()) });
    parameters.put(Parameters.PAGE_DESCRIPTION, new String[] { _page.getDescription() });
    parameters.put(Parameters.PAGE_TEMPLATE_ID, new String[] { Integer.toString(_page.getPageTemplateId()) });
    parameters.put(Parameters.META_KEYWORDS, new String[] { _page.getMetaKeywords() });
    parameters.put(Parameters.META_DESCRIPTION, new String[] { _page.getMetaDescription() });
    parameters.put("node_status", new String[] { Integer.toString(_page.getNodeStatus()) });
    parameters.put(Parameters.PAGE_NAME, new String[] { _page.getName() + "_child" });
    parameters.put(Parameters.PARENT_ID, new String[] { Integer.toString(_page.getParentPageId()) });
    Collection<Page> children = PageHome.getChildPages(_page.getId());
    assertNotNull(children);/*from w  w w.  j  a v  a2 s .c  om*/
    assertTrue(children.isEmpty());

    Map<String, List<FileItem>> fileItems = new HashMap<>();
    List<FileItem> listItems = new ArrayList<>();
    FileItem pageImageFile = new DiskFileItemFactory().createItem("image_content", "", false, "");
    pageImageFile.getOutputStream().write(new byte[1]);
    listItems.add(pageImageFile);
    fileItems.put("image_content", listItems);
    try {
        _bean.doCreateChildPage(new MultipartHttpServletRequest(request, fileItems, parameters));
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        children = PageHome.getChildPages(_page.getId());
        assertNotNull(children);
        assertTrue(children.isEmpty());
    }
}

From source file:fr.paris.lutece.portal.web.admin.AdminPageJspBeanTest.java

public void testDoCreateChildPageInvalidToken()
        throws AccessDeniedException, SizeLimitExceededException, FileUploadException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.PAGE_ID, new String[] { Integer.toString(_page.getId()) });
    parameters.put(Parameters.PAGE_DESCRIPTION, new String[] { _page.getDescription() });
    parameters.put(Parameters.PAGE_TEMPLATE_ID, new String[] { Integer.toString(_page.getPageTemplateId()) });
    parameters.put(Parameters.META_KEYWORDS, new String[] { _page.getMetaKeywords() });
    parameters.put(Parameters.META_DESCRIPTION, new String[] { _page.getMetaDescription() });
    parameters.put("node_status", new String[] { Integer.toString(_page.getNodeStatus()) });
    parameters.put(Parameters.PAGE_NAME, new String[] { _page.getName() + "_child" });
    parameters.put(Parameters.PARENT_ID, new String[] { Integer.toString(_page.getParentPageId()) });
    parameters.put(SecurityTokenService.PARAMETER_TOKEN, new String[] {
            SecurityTokenService.getInstance().getToken(request, "admin/site/admin_page_block_childpage.html")
                    + "b" });
    Collection<Page> children = PageHome.getChildPages(_page.getId());
    assertNotNull(children);/* w  w w  .  j  a v  a 2 s.  c o m*/
    assertTrue(children.isEmpty());

    Map<String, List<FileItem>> fileItems = new HashMap<>();
    List<FileItem> listItems = new ArrayList<>();
    FileItem pageImageFile = new DiskFileItemFactory().createItem("image_content", "", false, "");
    pageImageFile.getOutputStream().write(new byte[1]);
    listItems.add(pageImageFile);
    fileItems.put("image_content", listItems);
    try {
        _bean.doCreateChildPage(new MultipartHttpServletRequest(request, fileItems, parameters));
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        children = PageHome.getChildPages(_page.getId());
        assertNotNull(children);
        assertTrue(children.isEmpty());
    }
}

From source file:fr.paris.lutece.portal.web.admin.AdminPageJspBeanTest.java

public void testDoCreateChildPage()
        throws AccessDeniedException, SizeLimitExceededException, FileUploadException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    Map<String, String[]> parameters = new HashMap<>();
    parameters.put(Parameters.PAGE_ID, new String[] { Integer.toString(_page.getId()) });
    parameters.put(Parameters.PAGE_DESCRIPTION, new String[] { _page.getDescription() });
    parameters.put(Parameters.PAGE_TEMPLATE_ID, new String[] { Integer.toString(_page.getPageTemplateId()) });
    parameters.put(Parameters.META_KEYWORDS, new String[] { _page.getMetaKeywords() });
    parameters.put(Parameters.META_DESCRIPTION, new String[] { _page.getMetaDescription() });
    parameters.put("node_status", new String[] { Integer.toString(_page.getNodeStatus()) });
    parameters.put(Parameters.PAGE_NAME, new String[] { _page.getName() + "_child" });
    parameters.put(Parameters.PARENT_ID, new String[] { Integer.toString(_page.getParentPageId()) });
    parameters.put(Parameters.PARAMETER_DISPLAY_UPDATE_DATE,
            new String[] { Boolean.toString(_page.getDisplayDateUpdate()) });
    parameters.put(Parameters.PARAMETER_ENABLE_MANUAL_UPDATE_DATE,
            new String[] { Boolean.toString(_page.getIsManualDateUpdate()) });
    parameters.put(Parameters.PARAMETER_MANUAL_UPDATE_DATE, new String[] { "01/01/2017" });
    parameters.put(SecurityTokenService.PARAMETER_TOKEN, new String[] { SecurityTokenService.getInstance()
            .getToken(request, "admin/site/admin_page_block_childpage.html") });

    Collection<Page> children = PageHome.getChildPages(_page.getId());
    assertNotNull(children);//from ww  w .  ja v  a2  s .  com
    assertTrue(children.isEmpty());

    Map<String, List<FileItem>> fileItems = new HashMap<>();
    List<FileItem> listItems = new ArrayList<>();
    FileItem pageImageFile = new DiskFileItemFactory().createItem("image_content", "", false, "");
    pageImageFile.getOutputStream().write(new byte[1]);
    listItems.add(pageImageFile);
    fileItems.put("image_content", listItems);
    _bean.doCreateChildPage(new MultipartHttpServletRequest(request, fileItems, parameters));
    AdminMessage message = AdminMessageService.getMessage(request);
    assertNull(message);
    children = PageHome.getChildPages(_page.getId());
    assertNotNull(children);
    assertFalse(children.isEmpty());
    assertTrue(children.stream().allMatch(page -> page.getParentPageId() == _page.getId()
            && page.getName().equals(_page.getName() + "_child")));
}

From source file:com.example.app.ui.vtcrop.VTCropPictureEditor.java

@Nullable
private FileItem _getUIValue(@Nullable FileItem uiValue) {
    if (uiValue == null) {
        return null;
    }//w ww .j  a v a  2s  .  co  m

    Dimension origDim, newDim;
    try {
        origDim = ImageFileUtil.getDimension(uiValue);
    } catch (IOException e) {
        _logger.error("Skipping scaling because an error occurred.", e);
        return uiValue;
    }

    if (origDim == null) {
        _logger.warn("Skipping scaling because retrieved dimension for ui value was null.");
        return uiValue;
    }

    VTCropPictureEditorConfig.ImageScaleOption option = _config.getImageScaleOptionForName(_uiValue.getName());
    int newDimWidth = option != null && option.scale != null
            ? Double.valueOf(_config.getCropWidth() * option.scale).intValue()
            : _config.getCropWidth();
    int newDimHeight = option != null && option.scale != null
            ? Double.valueOf(_config.getCropHeight() * option.scale).intValue()
            : _config.getCropHeight();

    newDim = ImageFileUtil.getScaledDimension(origDim, newDimWidth, newDimHeight);

    if (!newDim.equals(origDim)) {
        _logger.debug("Scale to " + newDim.getWidthMetric() + " x " + newDim.getHeightMetric());
        FileItem scaledFileItem = _fileItemFactory.createItem(uiValue.getFieldName(), uiValue.getContentType(),
                uiValue.isFormField(), uiValue.getName());
        try (InputStream is = uiValue.getInputStream(); OutputStream os = scaledFileItem.getOutputStream()) {
            Thumbnailer tn = Thumbnailer.getInstance(is);
            BufferedImage scaledImg = tn.getQualityThumbnail(newDim.getWidthMetric().intValue(),
                    newDim.getHeightMetric().intValue());
            String extension = StringFactory.getExtension(uiValue.getName());
            ImageIO.write(scaledImg, extension, os);
            uiValue.delete();
            uiValue = scaledFileItem;
        } catch (Throwable e) {
            _logger.warn("Skipping scaling due to:", e);
        }
    }

    return uiValue;
}

From source file:com.example.app.support.ui.vtcrop.VTCropPictureEditor.java

@Nullable
private FileItem _getUIValue(@Nullable FileItem uiValue) {
    if (uiValue == null) {
        return null;
    }/* ww  w.  ja v a 2  s  .c  o m*/

    Dimension origDim, newDim;
    try {
        origDim = ImageFileUtil.getDimension(uiValue);
    } catch (IOException e) {
        _logger.error("Skipping scaling because an error occurred.", e);
        return uiValue;
    }

    if (origDim == null) {
        _logger.warn("Skipping scaling because retrieved dimension for ui value was null.");
        return uiValue;
    }

    VTCropPictureEditorConfig.ImageScaleOption option = _config.getImageScaleOptionForName(_uiValue.getName());
    int newDimWidth = option != null && option.scale != null
            ? Double.valueOf(_config.getCropWidth() * option.scale).intValue()
            : _config.getCropWidth();
    int newDimHeight = option != null && option.scale != null
            ? Double.valueOf(_config.getCropHeight() * option.scale).intValue()
            : _config.getCropHeight();

    newDim = ImageFileUtil.getScaledDimension(origDim, newDimWidth, newDimHeight);

    if (!Objects.equals(newDim, origDim)) {
        _logger.debug("Scale to " + newDim.getWidthMetric() + " x " + newDim.getHeightMetric());
        FileItem scaledFileItem = _fileItemFactory.createItem(uiValue.getFieldName(), uiValue.getContentType(),
                uiValue.isFormField(), uiValue.getName());
        try (InputStream is = uiValue.getInputStream(); OutputStream os = scaledFileItem.getOutputStream()) {
            Thumbnailer tn = Thumbnailer.getInstance(is);
            BufferedImage scaledImg = tn.getQualityThumbnail(newDim.getWidthMetric().intValue(),
                    newDim.getHeightMetric().intValue());
            String extension = StringFactory.getExtension(uiValue.getName());
            ImageIO.write(scaledImg, extension, os);
            uiValue.delete();
            uiValue = scaledFileItem;
        } catch (Throwable e) {
            _logger.warn("Skipping scaling due to:", e);
        }
    }

    return uiValue;
}

From source file:com.hp.application.automation.tools.octane.CIJenkinsServicesImpl.java

private List<ParameterValue> createParameters(AbstractProject project, JSONArray paramsJSON) {
    List<ParameterValue> result = new ArrayList<>();
    boolean parameterHandled;
    ParameterValue tmpValue;/* ww w. j  a  va  2  s. c  om*/
    ParametersDefinitionProperty paramsDefProperty = (ParametersDefinitionProperty) project
            .getProperty(ParametersDefinitionProperty.class);
    if (paramsDefProperty != null) {
        for (ParameterDefinition paramDef : paramsDefProperty.getParameterDefinitions()) {
            parameterHandled = false;
            for (int i = 0; i < paramsJSON.size(); i++) {
                JSONObject paramJSON = paramsJSON.getJSONObject(i);
                if (paramJSON.has("name") && paramJSON.get("name") != null
                        && paramJSON.get("name").equals(paramDef.getName())) {
                    tmpValue = null;
                    switch (CIParameterType.fromValue(paramJSON.getString("type"))) {
                    case FILE:
                        try {
                            FileItemFactory fif = new DiskFileItemFactory();
                            FileItem fi = fif.createItem(paramJSON.getString("name"), "text/plain", false,
                                    paramJSON.getString("file"));
                            fi.getOutputStream()
                                    .write(DatatypeConverter.parseBase64Binary(paramJSON.getString("value")));
                            tmpValue = new FileParameterValue(paramJSON.getString("name"), fi);
                        } catch (IOException ioe) {
                            logger.warn("failed to process file parameter", ioe);
                        }
                        break;
                    case NUMBER:
                        tmpValue = new StringParameterValue(paramJSON.getString("name"),
                                paramJSON.get("value").toString());
                        break;
                    case STRING:
                        tmpValue = new StringParameterValue(paramJSON.getString("name"),
                                paramJSON.getString("value"));
                        break;
                    case BOOLEAN:
                        tmpValue = new BooleanParameterValue(paramJSON.getString("name"),
                                paramJSON.getBoolean("value"));
                        break;
                    case PASSWORD:
                        tmpValue = new PasswordParameterValue(paramJSON.getString("name"),
                                paramJSON.getString("value"));
                        break;
                    default:
                        break;
                    }
                    if (tmpValue != null) {
                        result.add(tmpValue);
                        parameterHandled = true;
                    }
                    break;
                }
            }
            if (!parameterHandled) {
                if (paramDef instanceof FileParameterDefinition) {
                    FileItemFactory fif = new DiskFileItemFactory();
                    FileItem fi = fif.createItem(paramDef.getName(), "text/plain", false, "");
                    try {
                        fi.getOutputStream().write(new byte[0]);
                    } catch (IOException ioe) {
                        logger.error("failed to create default value for file parameter '" + paramDef.getName()
                                + "'", ioe);
                    }
                    tmpValue = new FileParameterValue(paramDef.getName(), fi);
                    result.add(tmpValue);
                } else {
                    result.add(paramDef.getDefaultParameterValue());
                }
            }
        }
    }
    return result;
}