Upload
Using UploadPortletRequest to receive file input stream:UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(resourceRequest);
long fileSize = uploadRequest.getSize("field_name");
InputStream is = uploadRequest.getFileAsStream("field_name");
String mimeType = uploadRequest.getContentType("field_name");
String sourceFileName = uploadRequest.getFileName("field_name");
Save
To create file in Document and Media Library, using this one:ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
ServiceContext serviceContext = ServiceContextFactory.getInstance(request);
User currentUser = PortalUtil.getUser(request);
// with default repository, repositoryId is equals to scopeGroupId
long repositoryId = themeDisplay.getScopeGroupId();
long userId = themeDisplay.getUserId();
long groupId = themeDisplay.getScopeGroupId();
long fileEntryTypeId = ParamUtil.getLong(serviceContext, "fileEntryTypeId", -1L);
Map<String, Fields> fieldsMap = new HashMap<String, Fields>();
// Now, add new one
DLFileEntry newFile = DLFileEntryLocalServiceUtil.addFileEntry(userId, groupId,
repositoryId, folderId, sourceFileName, mimeType, title, "", "", fileEntryTypeId,
fieldsMap, file, is, size, serviceContext);
DLFileEntryLocalServiceUtil.updateFileEntry(userId, newFile.getFileEntryId(),
sourceFileName, mimeType, title, "", "", true, fileEntryTypeId, fieldsMap, null,
null, uploadRequest.getSize(posterName), serviceContext);
In case, you want to create folder to save the file, this is how to do:
// parentId = 0L means Root folder in Document Library
long parentId = 0L;
// with default repository, repositoryId is equals to scopeGroupId
long repositoryId = themeDisplay.getScopeGroupId();
long userId = themeDisplay.getUserId();
long groupId = themeDisplay.getScopeGroupId();
DLFolder folder = DLFolderLocalServiceUtil.addFolder(userId, groupId, repositoryId, false, parentId, folderName, "", serviceContext);
newFolderId = folder.getFolderId();
What about creating a list folder in hierarchy?
public long createFolders(String[] folders, ThemeDisplay themeDisplay, ServiceContext serviceContext) {
int num = folders.length;
long parentId = 0L;
long newFolderId = 0L;
for (int i = 0; i < num; i++) {
newFolderId = MyUtilClass.findFolderByName(folders[i], parentId, themeDisplay.getScopeGroupId());
if (newFolderId == -1) {
newFolderId = MyUtilClass.createFolder(folders[i], parentId, themeDisplay, serviceContext);
}
parentId = newFolderId;
}
return newFolderId;
}
Get Link
To get file URL:
/* format file url: domain/documents/[groupid]/[folderid]/[fileName]/[uuid]
* e.g: http://localhost:8080/documents/10828/22503/Penguins2_1390451913869.JPG/0da81b4e-37cf-45a4-9872-8ac3447d9bba
* */
String fileUrl = themeDisplay.getPortalURL() + themeDisplay.getPathContext() + SLASH + "documents"
+ SLASH + themeDisplay.getScopeGroupId() + SLASH + folderId + SLASH
+ HttpUtil.encodeURL(HtmlUtil.unescape(title)) + SLASH + newFile.getUuid();
No comments:
Post a Comment