2014-09-30 59 views
0

我需要一个像DLFileEntryLocalServiceUtil.getFileAsStream(...)这样的方法。但是,我在我的应用程序中使用了Liferay的SOAP服务。Liferay文档库服务

有无论如何得到关于文件的文件流或获取文件像字节数组或像这样的东西。

回答

0

如果您使用的是Liferay的SOAP服务,则不能使用“本地”服务,而必须使用DLFileEntryService。 (注意名称中缺少“本地”部分)。

本地服务只能通过Java使用,不涉及权限检查。远程服务确实涉及权限检查,并且也可以通过SOAP获得,需要认证。

重新发表您的评论:我看到没有getFileAsStream可通过SOAP获得(因为InputStream无法正确序列化)。您可能需要编写处理数据的自己的服务端点。在实施方面,您可以转发到DLFileEntryService。确保你有一个文件大小的上限,因为你不是流媒体。

你是如何做到这一点的?编写你自己的插件,向一个新的Liferay服务添加一个空实体并实现你需要的方法。由于实施只是重新格式化数据,但一般转发到DLFileEntryService,它应该非常简单。

+0

我找不到任何有关获取文件内容的功能。我只获取文件信息等。我该如何实现这一点? – mekafe 2014-10-01 09:13:15

+0

嗨Olaf,DLFileEntryLocalServiceUtil.getFileAsStream(...)不工作在我的服务器我有s3桶配置文件和媒体。这种方法完美地工作,没有任何问题,其中s3没有配置。这是否需要任何额外的配置? – 2016-07-03 11:02:49

0

如果您基本上想要将DLFileEntry转换为File,那么您可以使用其他方法。

文件文件= DLFileEntryLocalServiceUtil.getFile(user.getUserId(),dlFileEntry.getFileEntryId(),dlFileEntry.getVersion(),true);