Write a file programatically

From OpenCms Wiki
Revision as of 02:44, 21 August 2007 by Kaabr (Talk | contribs)
Jump to: navigation, search

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.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox