Example usage for com.liferay.portal.kernel.servlet ServletResponseUtil sendFile

List of usage examples for com.liferay.portal.kernel.servlet ServletResponseUtil sendFile

Introduction

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

Prototype

public static void sendFile(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
            String fileName, InputStream inputStream) throws IOException 

Source Link

Usage

From source file:m.omarh.liferay.resources.importer.generator.SitemapGeneratorPortlet.java

License:Open Source License

@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws IOException, PortletException {

    String resourceId = resourceRequest.getResourceID();

    boolean isDocument = ParamUtil.getBoolean(resourceRequest, "document");

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

    if (resourceId.equals("sitemap.json")) {

        String sitemap = JSONUtil.valorizeVariables(themeDisplay,
                SiteMapUtil.generateJSONSitemap(themeDisplay.getScopeGroup()).toString());

        writeJSON(resourceRequest, resourceResponse, JSONUtil.beautify(sitemap));

    } else if (resourceId.equals("assets.json")) {

        String assets = JSONUtil.valorizeVariables(themeDisplay,
                AssetsUtil.generateJSONAsset(themeDisplay.getScopeGroup()).toString());

        writeJSON(resourceRequest, resourceResponse, JSONUtil.beautify(assets));

    } else if (resourceId.endsWith(".html") && !isDocument) {

        writeJSON(resourceRequest, resourceResponse,
                JournalArticleUtil.getJournalArticleContentJSONObject(themeDisplay, resourceId));

    } else if (resourceId.endsWith(".xml") && !isDocument) {

        String uuid = ParamUtil.getString(resourceRequest, "uuid");

        writeJSON(resourceRequest, resourceResponse,
                JournalStructureUtil.getJournalStructureContent(themeDisplay, uuid));

    } else if (resourceId.endsWith(".vm") || resourceId.endsWith(".ftl")) {

        String uuid = ParamUtil.getString(resourceRequest, "uuid");

        writeJSON(resourceRequest, resourceResponse,
                JournalTemplateUtil.getJournalTemplateContent(themeDisplay, uuid));

    } else if (resourceId.endsWith("articles_")) {

        writeJSON(resourceRequest, resourceResponse, JournalArticleUtil.buildJSONJournalArticles(themeDisplay,
                false, StringPool.BLANK, StringPool.BLANK));

    } else if (resourceId.endsWith("structures_")) {

        writeJSON(resourceRequest, resourceResponse, JournalStructureUtil.buildJSONDDMStrcutures(
                themeDisplay.getScopeGroup(), false, StringPool.BLANK, StringPool.BLANK));

    } else if (resourceId.endsWith("templates_")) {

        writeJSON(resourceRequest, resourceResponse, JournalTemplateUtil.buildJSONDDMTemplates(
                themeDisplay.getScopeGroup(), false, StringPool.BLANK, StringPool.BLANK));

    } else if (resourceId.endsWith("application_display_")) {

        writeJSON(resourceRequest, resourceResponse, ApplicationDisplayUtil.buildJSONApplicationDisplay(
                themeDisplay.getScopeGroup(), false, StringPool.BLANK, StringPool.BLANK));

    } else if (resourceId.endsWith("documents_")) {

        writeJSON(resourceRequest, resourceResponse, DocumentUtil
                .buildJSONDocuments(themeDisplay.getScopeGroup(), false, StringPool.BLANK, StringPool.BLANK));

    } else if (ArrayUtil.contains(DocumentUtil.TEXT_EXTENSIONS, FileUtil.getExtension(resourceId))) {

        String uuid = ParamUtil.getString(resourceRequest, "uuid");

        writeJSON(resourceRequest, resourceResponse, DocumentUtil.getDLFileContent(themeDisplay, uuid));

    } else if (ArrayUtil.contains(DocumentUtil.MIME_TYPES_CONTENT_DISPOSITION_INLINE,
            FileUtil.getExtension(resourceId)) && isDocument) {

        String uuid = ParamUtil.getString(resourceRequest, "uuid");

        InputStream inputStream = new ByteArrayInputStream(Base64
                .encode(DocumentUtil.getDLFileBytes(themeDisplay, uuid)).getBytes(StandardCharsets.UTF_8));

        ServletResponseUtil.sendFile(PortalUtil.getHttpServletRequest(resourceRequest),
                PortalUtil.getHttpServletResponse(resourceResponse), resourceId, inputStream);

        /*JSONObject base64JSONObject = JSONFactoryUtil.createJSONObject();
        base64JSONObject.put("content", Base64.encode(DocumentUtil.getDLFileBytes(themeDisplay, uuid)));
                //  ww w  .j  a  va2  s . co  m
        writeJSON(resourceRequest, resourceResponse, base64JSONObject);*/
    }

    super.serveResource(resourceRequest, resourceResponse);
}