2012-08-13 21 views
8

Mam kilka treści w mojej bibliotece dokumentów (obrazy, dokumenty, filmy ...) i chcę uzyskać adres URL pobierania dla każdego z nich programowo, więc mogę pokaż je w jsp w niestandardowym portlecie.Jak uzyskać adres URL pobierania dla zawartości biblioteki dokumentów programowo

Badanie, znalazłem tę stronę z możliwych rozwiązań: https://www.liferay.com/community/forums/-/message_boards/message/11073293 ale nie jestem z tym dobrze, ponieważ implikuje ręcznie budowania url z kilkoma parametrami.

Chciałbym wiedzieć, czy jest lepszy sposób ("sposób Liferay"), aby to zrobić.

+0

Na przykład, aby utworzyć adres URL logowania, możesz zrobić to ręcznie za pomocą ciągu "/ c/portal/login", a następnie znikając p_l_id i łącząc ... ale zamiast robić to ręcznie, możesz wywołać funkcję themeDisplay.getURLSignIn () a Liferay to dla ciebie. Szukam czegoś podobnego w tym przypadku. – stoldark

Odpowiedz

8

Obawiam się, ale to jest sposób liferay :-).

Jeśli nadal potrzebujesz więcej potwierdzenia, sprawdź metodę source code metody DLUtil#getPreviewURL.

Ta metoda została użyta przez użytkowników liferay: Documents & Media portlet i Document and Media display portlet. Możesz również sprawdzić źródło JSP, aby dowiedzieć się, w jaki sposób te portlety używają powyższej metody: /portal-web/docroot/html/portlet/document_library/action/download.jspf.

P.S .:
Można konwertować DLFileEntry do FileEntry z tym static method.

+0

Dzięki Prakash, nie przeszkadza mi używanie metody Liferay, o ile mogę użyć metody podobnej do DLUtil.getPreviewURL z mojego kodu i streszczenia. Czułem się niekomfortowo, ponieważ musiałem ręcznie zbudować adres URL. – stoldark

+0

Jednak pracuję z obiektami DLFileEntry, a obiekt DLUtil.getPreviewURL oczekuje obiektu FileEntry. Jak sobie z tym poradzić? Próbuję rzucić z DLFileEntry, ale to daje mi błąd. Jakieś pomysły? – stoldark

+1

sprawdź tę statyczną metodę: http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portlet/documentlibrary/service/DLAppServiceUtil.html#getFileEntry%28long%29 –

6

Przez takie pytania zawsze widzę źródła Liferay. Oto fragment, który zbudować Pobierz plik url w „Documents and Media Library” portletów:

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

ale masz rację, wolałbym methode jak DLFile.getUrl() też.

Powiązane problemy