Search code examples
alfresco

Upload a file in Alfresco using java implementation


Suggest me any basic example for uploading a file to Alfresco using java. I m new to Alfresco.


Solution

  • Here is an example using Python and cmislib:

    >>> from cmislib import CmisClient
    >>> client = CmisClient('http://cmis.alfresco.com/cmisatom', 'admin', 'admin')
    >>> repo = client.defaultRepository
    >>> root = repo.rootFolder
    >>> someFolder = root.createFolder('someFolder')
    >>> someFile = open('test.txt', 'r')
    >>> someDoc = someFolder.createDocument('Test Document', contentFile=someFile)
    

    And here is an example using Java and OpenCMIS:

    // default factory implementation
    SessionFactory factory = SessionFactoryImpl.newInstance();
    Map<String, String> parameter = new HashMap<String, String>();
    
    // user credentials
    parameter.put(SessionParameter.USER, "Otto");
    parameter.put(SessionParameter.PASSWORD, "****");
    
    // connection settings
    parameter.put(SessionParameter.ATOMPUB_URL, "http://<host>:<port>/cmis/atom");
    parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
    parameter.put(SessionParameter.REPOSITORY_ID, "myRepository");
    
    // create session
    Session session = factory.createSession(parameter);
    Folder root = session.getRootFolder();
    
    // properties
    // (minimal set: name and object type id)
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
    properties.put(PropertyIds.NAME, "a new folder");
    
    // create the folder
    Folder parent = root.createFolder(properties);
    
    String name = "myNewDocument.txt";
    
    // properties 
    // (minimal set: name and object type id)
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
    properties.put(PropertyIds.NAME, name);
    
    // content
    byte[] content = "Hello World!".getBytes();
    InputStream stream = new ByteArrayInputStream(content);
    ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(content.length), "text/plain", stream);
    
    // create a major version
    Document newDoc = parent.createDocument(properties, contentStream, VersioningState.MAJOR);