2014-09-30 63 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);