Jika anda sudah bermain-main dengan java portlet, maka nama Liferay sudah seharusnya tidak asing lagi bagi anda. Salah satu kekuatan Liferay adalah pengaturan dan penyimpanan files di dalam document libraries.
Kali ini saya menemukan contoh code dari Liferay di mana caranya menyimpan files ke dalam document library.
JSP code:

<label for=""><liferay-ui:message key="signature" /></label> 
<input name="<portlet:namespace />signature" id="<portlet:namespace />signature">
Portlet code:

UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
         String sourceFileName = uploadRequest.getFileName("signature");
         File file = uploadRequest.getFile("signature");
         if (Validator.isNotNull(sourceFileName) && !file.exists()) {
             file.createNewFile();
         }
          serviceContext = ServiceContextFactory .getInstance(DLFileEntry.class.getName(), actionRequest); 
         long fId = 0l,stampId = 0l;
            List<DLFolder> dlFolders = DLFolderLocalServiceUtil.getDLFolders(
                    0, DLFolderLocalServiceUtil.getDLFoldersCount());
for (DLFolder folder : dlFolders) {
                try {
                    if (folder.getName().equalsIgnoreCase("Signature")) {
                        fId = folder.getFolderId();
    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
if (Validator.isNotNull(sourceFileName) ) {
             DLFileEntryServiceUtil.addFileEntry(
                    fId, sourceFileName, sourceFileName, "", "", file, serviceContext);
            }
Penjelasan:
Contoh di atas akan menyimpan file di dalam document library Liferay yang di mana directory "Signature" sudah tersedia.

Code di atas ini hanya contoh, jika anda membutuhkan code yang generic / dynamic, silahkan kembangkan code di atas ini sesuai dengan kebutuhan anda (misalnya, nama "Signature" tidak lagi di hardcoded  melainkan membaca value tersebut dari portlet preference. Di portlet preference anda bisa menggunakan String atau directory ID).

Selamat mencoba.
 


Comments




Leave a Reply