Example usage for com.liferay.portal.kernel.flash FlashMagicBytesUtil check

List of usage examples for com.liferay.portal.kernel.flash FlashMagicBytesUtil check

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.flash FlashMagicBytesUtil check.

Prototype

public static Result check(InputStream inputStream) throws IOException 

Source Link

Usage

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

License:Open Source License

protected void getFile(long fileEntryId, long folderId, String name, String title, String version,
        long fileShortcutId, String uuid, long groupId, String targetExtension, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    if (name.startsWith("DLFE-")) {
        name = name.substring(5);/*w  ww. j  ava  2  s.c  o m*/
    }

    name = FileUtil.stripExtension(name);

    FileEntry fileEntry = null;

    if (Validator.isNotNull(uuid) && (groupId > 0)) {
        fileEntry = DLAppServiceUtil.getFileEntryByUuidAndGroupId(uuid, groupId);

        folderId = fileEntry.getFolderId();
    }

    if (fileEntryId > 0) {
        fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId);
    } else if (fileShortcutId <= 0) {
        if (Validator.isNotNull(title)) {
            fileEntry = DLAppServiceUtil.getFileEntry(groupId, folderId, title);
        } else if (Validator.isNotNull(name)) {
            DLFileEntry dlFileEntry = DLFileEntryLocalServiceUtil.fetchFileEntryByName(groupId, folderId, name);

            if (dlFileEntry == null) {

                // LPS-30374

                List<DLFileEntry> dlFileEntries = DLFileEntryLocalServiceUtil.getFileEntries(folderId, name);

                if (!dlFileEntries.isEmpty()) {
                    dlFileEntry = dlFileEntries.get(0);
                }
            }

            if (dlFileEntry != null) {
                ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);

                PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

                DLFileEntryPermission.check(permissionChecker, dlFileEntry, ActionKeys.VIEW);

                fileEntry = new LiferayFileEntry(dlFileEntry);
            }
        }
    } else {
        FileShortcut fileShortcut = DLAppServiceUtil.getFileShortcut(fileShortcutId);

        fileEntryId = fileShortcut.getToFileEntryId();

        fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId);
    }

    if (Validator.isNull(version)) {
        if ((fileEntry != null) && Validator.isNotNull(fileEntry.getVersion())) {

            version = fileEntry.getVersion();
        } else {
            throw new NoSuchFileEntryException("{fileEntryId=" + fileEntryId + "}");
        }
    }

    FileVersion fileVersion = fileEntry.getFileVersion(version);

    InputStream is = fileVersion.getContentStream(true);

    String fileName = fileVersion.getTitle();

    String sourceExtension = fileVersion.getExtension();

    if (Validator.isNotNull(sourceExtension) && !fileName.endsWith(StringPool.PERIOD + sourceExtension)) {

        fileName += StringPool.PERIOD + sourceExtension;
    }

    long contentLength = fileVersion.getSize();
    String contentType = fileVersion.getMimeType();

    if (Validator.isNotNull(targetExtension)) {
        String id = DLUtil.getTempFileId(fileEntry.getFileEntryId(), version);

        File convertedFile = DocumentConversionUtil.convert(id, is, sourceExtension, targetExtension);

        if (convertedFile != null) {
            fileName = FileUtil.stripExtension(fileName).concat(StringPool.PERIOD).concat(targetExtension);
            is = new FileInputStream(convertedFile);
            contentLength = convertedFile.length();
            contentType = MimeTypesUtil.getContentType(fileName);
        }
    }

    FlashMagicBytesUtil.Result flashMagicBytesUtilResult = FlashMagicBytesUtil.check(is);

    if (flashMagicBytesUtilResult.isFlash()) {
        fileName = FileUtil.stripExtension(fileName) + ".swf";
    }

    is = flashMagicBytesUtilResult.getInputStream();

    ServletResponseUtil.sendFile(request, response, fileName, is, contentLength, contentType);
}

From source file:com.liferay.image.uploader.web.internal.portlet.action.UploadImageMVCResourceCommand.java

License:Open Source License

@Override
protected void doServeResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    try {//from w  ww  .j a va  2 s.c o  m
        String cmd = ParamUtil.getString(resourceRequest, Constants.CMD);

        if (cmd.equals(Constants.GET_TEMP)) {
            FileEntry tempFileEntry = UploadImageUtil.getTempImageFileEntry(resourceRequest);

            FlashMagicBytesUtil.Result flashMagicBytesUtilResult = FlashMagicBytesUtil
                    .check(tempFileEntry.getContentStream());

            if (flashMagicBytesUtilResult.isFlash()) {
                return;
            }

            serveTempImageFile(resourceResponse, flashMagicBytesUtilResult.getInputStream());
        }
    } catch (NoSuchFileEntryException nsfee) {

        // LPS-52675

        if (_log.isDebugEnabled()) {
            _log.debug(nsfee, nsfee);
        }
    } catch (Exception e) {
        _log.error("Unable to serve resource", e);
    }
}

From source file:com.liferay.wiki.web.internal.portlet.action.GetPageAttachmentAction.java

License:Open Source License

protected void getFile(long nodeId, String title, String fileName, int status, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    WikiPage wikiPage = _wikiPageService.getPage(nodeId, title);

    FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(wikiPage.getGroupId(),
            wikiPage.getAttachmentsFolderId(), fileName);

    if ((status != WorkflowConstants.STATUS_IN_TRASH) && fileEntry.isInTrash()) {

        return;//from  w  w  w .  j a v  a 2s.c o  m
    }

    if (fileEntry.isInTrash()) {
        fileName = TrashUtil.getOriginalTitle(fileEntry.getTitle());
    }

    InputStream is = fileEntry.getContentStream();

    FlashMagicBytesUtil.Result flashMagicBytesUtilResult = FlashMagicBytesUtil.check(is);

    if (flashMagicBytesUtilResult.isFlash()) {
        fileName = FileUtil.stripExtension(fileName) + ".swf";
    }

    is = flashMagicBytesUtilResult.getInputStream();

    ServletResponseUtil.sendFile(request, response, fileName, is, fileEntry.getSize(), fileEntry.getMimeType());
}