Write a file programatically

From OpenCms Wiki
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 [http://lists.opencms.org/pipermail/opencms-dev/2007q2/028211.html]
 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