【发布时间】:2014-12-17 11:57:33
【问题描述】:
在 Liferay 中上传文件
任何人都可以帮助我如何使用 DLFileEntry 将我的文件上传到文档和媒体文件夹中 我搜索但没有得到确切的代码。我怎样才能做到这一点。 我只是将我的文件控制器放在 jsp 文件中。 我尝试使用以下代码
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
String sourceFileName = uploadRequest.getFileName("fileName");
System.out.println("file name " + sourceFileName);
File file = uploadRequest.getFile("fileName");
ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
System.out.println("User Id " + themeDisplay.getUserId() + ": " + themeDisplay.getScopeGroupId());
long FOLDER_ID = 0;
long repositoryId = themeDisplay.getScopeGroupId();
long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
List<Folder> lFolder = DLAppServiceUtil.getFolders(repositoryId, parentFolderId);
for (Folder folder : lFolder) {
System.out.println(lFolder);
System.out.println(folder.getFolderId());
}
//ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest);
ServiceContext serviceContext = ServiceContextFactory.getInstance(FileEntry.class.getName(), actionRequest);
System.out.println("hello");
long defaultRepoId = DLFolderConstants.getDataRepositoryId(themeDisplay.getScopeGroupId(),DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
DLFileEntry dlFileEntry=DLFileEntryLocalServiceUtil.addFileEntry(themeDisplay.getUserId(),themeDisplay.getScopeGroupId(), defaultRepoId, 12518, sourceFileName, MimeTypesUtil.getContentType(file), "fileTitle", "fileDesc", "sss",0,null,file,null,file.length(),serviceContext);
DLFileEntryLocalServiceUtil.updateFileEntry(themeDisplay.getUserId(), dlFileEntry.getFileEntryId(), sourceFileName, MimeTypesUtil.getContentType(file), "fileTitle", "fileDesc", "comment", true, dlFileEntry.getFileEntryTypeId(), null,file, null, file.length(), serviceContext);
但没有成功。
谁能在这里复制粘贴代码?
提前致谢
【问题讨论】:
-
你能提供你试过的代码吗?
-
感谢回复我编辑我的问题
-
文件夹
Uploads是否存在?如果在此代码执行时您尚未创建该文件夹,则会出现错误。 -
是的,这是存在的。但我更新了我的代码看看..
-
使用编辑之前提供的代码(确保子文件夹存在)和新添加的源,上传文件没有问题。我必须强调,我并没有只是将我的文件控制器放在 jsp 文件中。 将源移动到实际的操作方法并在那里继续努力。