2012-08-13 15 views
8

Ho diversi contenuti nella mia raccolta documenti (immagini, documenti, video ...) e voglio ottenere l'URL di download per ognuno di essi a livello di codice, quindi posso mostrarli su un jsp in un portlet personalizzato.Come ottenere l'URL di download per il contenuto di una raccolta documenti a livello di programmazione

Indagare, ho trovato questa pagina con una possibile soluzione: https://www.liferay.com/community/forums/-/message_boards/message/11073293 ma non sono bene con esso, in quanto implica la costruzione del URL manualmente con diversi parametri.

Mi piacerebbe sapere se c'è un modo migliore ("Liferay way") per farlo.

+0

Ad esempio, per creare un url di accesso è possibile farlo manualmente con una stringa "/ c/portal/login" e ottenere p_l_id e concatenare ... ma invece di farlo manualmente, è possibile chiamare themeDisplay.getURLSignIn () e Liferay lo costruisce per te. Sto cercando qualcosa di simile in questo caso. – stoldark

risposta

8

Ho paura ma questo è il modo liferay :-).

Se è ancora necessaria una maggiore conferma, consultare source code del metodo DLUtil#getPreviewURL.

Questo metodo è stato utilizzato da Liferay Documents & Media portlet e Document and Media display portlet. È anche possibile controllare la sorgente JSP su come questi portlet utilizzano il metodo sopra /portal-web/docroot/html/portlet/document_library/action/download.jspf.

P.S .:
È possibile convertire DLFileEntry-FileEntry con questo static method.

+0

Grazie a Prakash, non mi sento a disagio nell'usare il metodo Liferay, purché possa utilizzare un metodo come DLUtil.getPreviewURL dal mio codice e astratto dal dettaglio. Ciò di cui ero a disagio, è stato dover costruire manualmente l'URL manualmente. – stoldark

+0

Tuttavia, sto lavorando con gli oggetti DLFileEntry e DLUtil.getPreviewURL prevede un oggetto FileEntry. Come faccio a evitare questo? Sto provando a trasmettere da DLFileEntry, ma mi sta dando un errore. Qualche idea? – stoldark

+1

controlla questo metodo statico: http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portlet/documentlibrary/service/DLAppServiceUtil.html#getFileEntry%28long%29 –

6

Con tali domande vedo sempre le fonti di Liferay. Qui è il frammento che costruire il download di file URL in "Documenti e Media Library" portlet:

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

ma hai ragione, io preferirei un Methode come DLFile.getUrl() troppo.

Problemi correlati