Example usage for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT

List of usage examples for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT.

Prototype

String CONTENT_DISPOSITION_ATTACHMENT

To view the source code for com.liferay.portal.kernel.servlet HttpHeaders CONTENT_DISPOSITION_ATTACHMENT.

Click Source Link

Usage

From source file:com.liferay.adaptive.media.web.internal.servlet.AdaptiveMediaServlet.java

License:Open Source License

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

    try {//from  w w w  . j av  a  2  s  . c o  m
        AdaptiveMediaRequestHandler requestHandler = _adaptiveMediaRequestHandlerLocator
                .locateForPattern(_getRequestHandlerPattern(request));

        if (requestHandler == null) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI());

            return;
        }

        Optional<AdaptiveMedia<?>> adaptiveMediaOptional = requestHandler.handleRequest(request);

        AdaptiveMedia<?> adaptiveMedia = adaptiveMediaOptional
                .orElseThrow(AdaptiveMediaException.AdaptiveMediaNotFound::new);

        Optional<Integer> contentLengthOptional = adaptiveMedia
                .getValueOptional(AdaptiveMediaAttribute.contentLength());

        Integer contentLength = contentLengthOptional.orElse(0);

        Optional<String> contentTypeOptional = adaptiveMedia
                .getValueOptional(AdaptiveMediaAttribute.contentType());

        String contentType = contentTypeOptional.orElse(ContentTypes.APPLICATION_OCTET_STREAM);

        Optional<String> fileNameOptional = adaptiveMedia.getValueOptional(AdaptiveMediaAttribute.fileName());

        String fileName = fileNameOptional.orElse(null);

        boolean download = ParamUtil.getBoolean(request, "download");

        if (download) {
            ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(),
                    contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT);
        } else {
            ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(),
                    contentLength, contentType);
        }
    } catch (AdaptiveMediaException.AdaptiveMediaNotFound amnf) {
        response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI());
    } catch (Exception e) {
        Throwable cause = e.getCause();

        if (cause instanceof PrincipalException) {
            response.sendError(HttpServletResponse.SC_FORBIDDEN, request.getRequestURI());
        } else {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI());
        }
    }
}

From source file:com.liferay.adaptive.media.web.internal.servlet.AMServlet.java

License:Open Source License

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

    try {/* w ww.java  2 s .c  om*/
        AMRequestHandler amRequestHandler = _amRequestHandlerLocator
                .locateForPattern(_getRequestHandlerPattern(request));

        if (amRequestHandler == null) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI());

            return;
        }

        Optional<AdaptiveMedia<?>> adaptiveMediaOptional = amRequestHandler.handleRequest(request);

        AdaptiveMedia<?> adaptiveMedia = adaptiveMediaOptional.orElseThrow(AMException.AMNotFound::new);

        Optional<Long> contentLengthOptional = adaptiveMedia
                .getValueOptional(AMAttribute.getContentLengthAMAttribute());

        long contentLength = contentLengthOptional.orElse(0L);

        Optional<String> contentTypeOptional = adaptiveMedia
                .getValueOptional(AMAttribute.getContentTypeAMAttribute());

        String contentType = contentTypeOptional.orElse(ContentTypes.APPLICATION_OCTET_STREAM);

        Optional<String> fileNameOptional = adaptiveMedia
                .getValueOptional(AMAttribute.getFileNameAMAttribute());

        String fileName = fileNameOptional.orElse(null);

        boolean download = ParamUtil.getBoolean(request, "download");

        if (download) {
            ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(),
                    contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT);
        } else {
            ServletResponseUtil.sendFile(request, response, fileName, adaptiveMedia.getInputStream(),
                    contentLength, contentType);
        }
    } catch (AMException.AMNotFound amnf) {
        response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI());
    } catch (Exception e) {
        Throwable cause = e.getCause();

        if (cause instanceof PrincipalException) {
            response.sendError(HttpServletResponse.SC_FORBIDDEN, request.getRequestURI());
        } else {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI());
        }
    }
}

From source file:com.liferay.document.library.web.internal.portlet.action.DownloadEntriesMVCResourceCommand.java

License:Open Source License

protected void downloadFileEntries(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);

    long folderId = ParamUtil.getLong(resourceRequest, "folderId");

    File file = null;//from ww w .ja v  a2 s. c om
    InputStream inputStream = null;

    try {
        List<FileEntry> fileEntries = ActionUtil.getFileEntries(resourceRequest);

        List<FileShortcut> fileShortcuts = ActionUtil.getFileShortcuts(resourceRequest);

        List<Folder> folders = ActionUtil.getFolders(resourceRequest);

        if (fileEntries.isEmpty() && fileShortcuts.isEmpty() && folders.isEmpty()) {

            return;
        } else if ((fileEntries.size() == 1) && fileShortcuts.isEmpty() && folders.isEmpty()) {

            FileEntry fileEntry = fileEntries.get(0);

            PortletResponseUtil.sendFile(resourceRequest, resourceResponse, fileEntry.getFileName(),
                    fileEntry.getContentStream(), 0, fileEntry.getMimeType(),
                    HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT);
        } else if ((fileShortcuts.size() == 1) && fileEntries.isEmpty() && folders.isEmpty()) {

            FileShortcut fileShortcut = fileShortcuts.get(0);

            FileEntry fileEntry = _dlAppService.getFileEntry(fileShortcut.getToFileEntryId());

            PortletResponseUtil.sendFile(resourceRequest, resourceResponse, fileEntry.getFileName(),
                    fileEntry.getContentStream(), 0, fileEntry.getMimeType(),
                    HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT);
        } else {
            String zipFileName = getZipFileName(folderId, themeDisplay);

            ZipWriter zipWriter = ZipWriterFactoryUtil.getZipWriter();

            for (FileEntry fileEntry : fileEntries) {
                zipFileEntry(fileEntry, StringPool.SLASH, zipWriter);
            }

            for (FileShortcut fileShortcut : fileShortcuts) {
                FileEntry fileEntry = _dlAppService.getFileEntry(fileShortcut.getToFileEntryId());

                zipFileEntry(fileEntry, StringPool.SLASH, zipWriter);
            }

            for (Folder folder : folders) {
                zipFolder(folder.getRepositoryId(), folder.getFolderId(),
                        StringPool.SLASH.concat(folder.getName()), zipWriter);
            }

            file = zipWriter.getFile();

            inputStream = new FileInputStream(file);

            PortletResponseUtil.sendFile(resourceRequest, resourceResponse, zipFileName, inputStream,
                    ContentTypes.APPLICATION_ZIP);
        }
    } finally {
        StreamUtil.cleanUp(inputStream);

        if (file != null) {
            file.delete();
        }
    }
}

From source file:com.liferay.marketplace.store.web.internal.portlet.RemoteMVCPortlet.java

License:Open Source License

protected void remoteServeResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);

    OAuthRequest oAuthRequest = new OAuthRequest(Verb.GET, getServerPortletURL());

    setRequestParameters(resourceRequest, resourceResponse, oAuthRequest);

    addOAuthParameter(oAuthRequest, "p_p_lifecycle", "2");
    addOAuthParameter(oAuthRequest, "p_p_resource_id", resourceRequest.getResourceID());

    Response response = getResponse(themeDisplay.getUser(), oAuthRequest);

    String contentType = response.getHeader(HttpHeaders.CONTENT_TYPE);

    if (contentType.startsWith(ContentTypes.APPLICATION_OCTET_STREAM)) {
        String contentDisposition = response.getHeader(HttpHeaders.CONTENT_DISPOSITION);
        int contentLength = GetterUtil.getInteger(response.getHeader(HttpHeaders.CONTENT_LENGTH));

        PortletResponseUtil.sendFile(resourceRequest, resourceResponse, getFileName(contentDisposition),
                response.getStream(), contentLength, contentType, HttpHeaders.CONTENT_DISPOSITION_ATTACHMENT);
    } else {/*from w  w w.j a  v  a  2  s  .c  o  m*/
        resourceResponse.setContentType(contentType);

        PortletResponseUtil.write(resourceResponse, response.getStream());
    }
}