Write a file programatically
From OpenCms Wiki
How to write a file programatically
//ensure we're in the offline project. CmsRequestContext cmsContext = cmsObj.getRequestContext(); CmsProject curProject = cmsContext.currentProject(); if(curProject.isOnlineProject()){ CmsProject offlineProject = cmsObj.readProject("Offline"); cmsContext.setCurrentProject(offlineProject); }
byte [] content = your data
// OpenCms properties creation example // by David Sánchez Hernández [1] List properties = new ArrayList();
// Setting template_elements property CmsProperty prop = new CmsProperty(); prop.setName(CmsPropertyDefinition.PROPERTY_TEMPLATE_ELEMENTS); prop.setValue("/system/modules/xxxxx.jsp",CmsProperty.TYPE_SHARED); properties.add(prop);
// Setting title property prop = new CmsProperty(); prop.setName(CmsPropertyDefinition.PROPERTY_TITLE); prop.setValue("Title",CmsProperty.TYPE_SHARED); properties.add(prop);
//get the fixed up filename as shown in CmsNewResourceUpload String newResname = cmsObj.getRequestContext().getFileTranslator() .translateResource(path + filename);
int resTypeId = OpenCms.getResourceManager() .getDefaultTypeForName(newResname).getTypeId();
cmsObj.createResource(newResname, resTypeId, content, properties); cmsObj.unlockResource(newResname); cmsObj.publishResource(newResname);
You can also try looking at CmsNewResourceUpload.java from the OpenCms sourcecode. It's available from opencms.org via an interactive html browser.