有人知道如何使用httpservlet从DLFileEntry(http://docs.liferay.com/portal/6.0/javadocs/com/liferay/portlet/documentlibrary/model/DLFileEntry.html)检索contentStream吗?

我尝试使用DLFileEntry.getContentStream(),但无法给我错误

com.liferay.portal.security.auth.PrincipalException: PermissionChecker not initialized

我部分解决了设置用户ID硬编码的问题:
long userId=2

            PrincipalThreadLocal.setName(userId);

            User user = UserLocalServiceUtil.getUserById(userId);

            PermissionChecker permissionChecker;

                permissionChecker = PermissionCheckerFactoryUtil.create(user, false);

            PermissionThreadLocal.setPermissionChecker(permissionChecker);

该解决方案的问题是如何获取真实的userId,以及如果用户是访客,该如何处理?

我尝试了Long.parseLong(req.getRemoteUser());但也失败了

最佳答案

DLFileEntryLocalServiceUtil.getFile(userId, fileEntryId, version, incrementCounter)

给你文件。你试过用这个吗?

10-08 04:58