Java 在liferay中上载包含元数据的文档
我正在尝试上载带有元数据的文档。简单文件上传器portlet工作正常,但当我尝试附加元数据时,它发送请求失败错误 这是我的密码Java 在liferay中上载包含元数据的文档,java,jakarta-ee,liferay-6,Java,Jakarta Ee,Liferay 6,我正在尝试上载带有元数据的文档。简单文件上传器portlet工作正常,但当我尝试附加元数据时,它发送请求失败错误 这是我的密码 public DLFileEntry upload(ActionRequest request, ActionResponse response) throws Exception { // TODO Auto-generated method stub ServiceContext sc = new ServiceContext(); Da
public DLFileEntry upload(ActionRequest request, ActionResponse response) throws Exception
{
// TODO Auto-generated method stub
ServiceContext sc = new ServiceContext();
Date date1 = (Date) request.getAttribute("efrom");
Date date2 = (Date) request.getAttribute("efrom");
String getTitle = request.getParameter("Title");
String getDesc = request.getParameter("Description");
String CKEditor = request.getParameter("CKE");
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
long defaultRepoId = DLFolderConstants.getDataRepositoryId(themeDisplay.getScopeGroupId(), DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
String rtfoutput = FileIO.readFromFile(tPath);
File tempFile = new File(tPath);
InputStream is = new FileInputStream(tempFile);
Folder folderName = DLAppLocalServiceUtil.getFolder(defaultRepoId, 0, "Folder Name");
long folderId = folderName.getFolderId();
long repositoryId = folderName.getRepositoryId();
byte[] bytes = rtfoutput.getBytes();
Map<String, Fields > fieldsMap = new HashMap<String, Fields >();
Fields targetFields = new Fields();
targetFields.put(new Field("Effective-To", date1));
targetFields.put(new Field("Effective-From", date2));
fieldsMap.put("", targetFields);
DLFileEntry dlFileEntry = DLFileEntryLocalServiceUtil.addFileEntry(defaultRepoId, 0L, repositoryId, folderId, getTitle+".rtf", "RichTextFormat", getTitle, StringPool.BLANK, StringPool.BLANK, 0L,
fieldsMap, tempFile, is, tempFile.getTotalSpace(), sc);
return dlFileEntry;
}
公共DLFileEntry上载(ActionRequest请求、ActionResponse响应)引发异常
{
//TODO自动生成的方法存根
ServiceContext sc=新的ServiceContext();
Date date1=(Date)request.getAttribute(“efrom”);
Date date2=(Date)request.getAttribute(“efrom”);
字符串getTitle=request.getParameter(“Title”);
字符串getDesc=request.getParameter(“Description”);
字符串CKEditor=request.getParameter(“CKE”);
主题显示主题显示=(主题显示)request.getAttribute(WebKeys.THEME\u DISPLAY);
long defaultRepoId=DLFolderConstants.getDataRepositoryId(主题显示.getScopeGroupId(),DLFolderConstants.DEFAULT\u父文件夹\u ID);
字符串rtfoutput=FileIO.readFromFile(tPath);
文件tempFile=新文件(tPath);
InputStream is=新文件InputStream(tempFile);
Folder folderName=DLAppLocalServiceUtil.getFolder(defaultRepoId,0,“文件夹名称”);
long folderId=folderName.getFolderId();
long repositoryId=folderName.getRepositoryId();
byte[]bytes=rtfoutput.getBytes();
Map fieldsMap=新的HashMap();
Fields targetFields=新字段();
targetFields.put(新字段(“生效日期”),日期1);
targetFields.put(新字段(“生效日期”,日期2));
fieldsMap.put(“,targetFields”);
DLFileEntry DLFileEntry=DLFileEntryLocalServiceUtil.addFileEntry(defaultRepoId,0L,repositoryId,folderId,getTitle+“.rtf”,“RichTextFormat”,getTitle,StringPool.BLANK,StringPool.BLANK,0L,
fieldsMap,tempFile,is,tempFile.getTotalSpace(),sc);
返回dlFileEntry;
}
我不明白为什么这是说请求失败
date1和date2是我试图用文档附加的元数据数据我认为您不能简单地添加自定义元数据。每个FileEntryType都有一个可能的metada字段集合,这些字段由DDMSStructure描述。但是,您应该首先创建/更新文件类型的DDM结构,然后放入新的元数据。有关liferay的源代码和本文的更多详细信息,请参阅: