2012-08-13 16 views
8

Belge kitaplığımda (görüntüler, belgeler, videolar ...) birkaç içeriğim var ve bunların her biri için program indirme URL'sini almak istiyorum. Özel bir portlette bir jsp üzerinde göster. https://www.liferay.com/community/forums/-/message_boards/message/11073293 ama birkaç parametreleri ile manuel url bina ima beri, onunla rahat değilim:Belge kitaplığı içeriği için indirme URL'si nasıl elde edilir Program aracılığıyla

Muhtemel bir çözüm ile bu sayfayı bulduk, incelenmesi.

Bunu yapmak için daha iyi bir yolun ("Liferay yolu") olup olmadığını bilmek isterim.

+0

Örneğin, bir oturum açma URL'si oluşturmak için '/ c/portal/login' dizesiyle el ile yapabilir ve p_l_id 'yi tamamlayıp bitiştirebilirsiniz ... ancak bunu elle yapmak yerine, themeDisplay.getURLSignIn öğesini çağırabilirsiniz.) ve Liferay sizin için oluşturur. Bu durumda benzer bir şey arıyorum. – stoldark

cevap

8

Korkarım ama bu hayat kurtarıcı bir yoldur :-).

Hala daha fazla onay gerekiyorsa DLUtil#getPreviewURL yönteminin source code kontrol edin.

Bu yöntem, ömür boyu Documents & Media portlet ve Document and Media display portlet tarafından kullanılmıştır. Ayrıca JSP kaynağını, bu portletlerin yukarıdaki yöntemi /portal-web/docroot/html/portlet/document_library/action/download.jspf kullanarak nasıl kullandığını kontrol edebilirsiniz.

P.S. .:
Bu static method ile FileEntry için DLFileEntry dönüştürebilirsiniz.

+0

Teşekkürler Prakash, DLUtil.getPreviewURL gibi bir yöntemi kodumdan ve detaylardan soyut olarak kullanabildiğim sürece Liferay yöntemini kullanmaktan rahatsız değilim. Rahatsız ettiğim şey, URL'yi kendim oluşturmak zorundaydı. – stoldark

+0

Ancak, DLFileEntry nesnelerle çalışıyorum ve DLUtil.getPreviewURL bir FileEntry nesnesi bekliyor. Bunu nasıl halledebilirim? DLFileEntry'den yayınlamaya çalışıyorum ama bu bana bir hata veriyor. Herhangi bir fikir? – stoldark

+1

bu statik yöntemi kontrol edin: http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portlet/documentlibrary/service/DLAppServiceUtil.html#getFileEntry%28long%29 –

6

Bu gibi sorulara her zaman Liferay kaynaklarını görüyorum. Burada "Belgeler ve Medya Kitaplığı" portlet dosya indirme url inşa parçasıdır:

<liferay-ui:input-resource 
    url='<%= themeDisplay.getPortalURL() + themeDisplay.getPathContext() + "/documents/" + themeDisplay.getScopeGroupId() + StringPool.SLASH + fileEntry.getUuid() %>' 
/> 

ama haklısın, ben() çok DLFile.getUrl gibi Methode tercih ediyorum.