There are some examples how to upload a file to alfresco using UploadContentServlet but they all show how to code it directly in Java. Documentation and forum lacks an example showing how to upload a large file using Alfresco web services. After a bit of struggle I figured it out.
Quick and dirty recipe:
- Perform ticket authorization
POST /alfresco/service/api/login { "username" : "admin", "password" : "admin" }
You’ll get response with ticket in it.
- Create a new document using CMIS services
POST /alfresco/service/cmis/i/176c5f4d-db63-49ec-9886-c19d6d9eefce/children Content-Type:application/atom+xml;type=entry <?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/"> <title>important document</title> <summary>VERY important document</summary> <content type="text/plain"> MS4gR2l0YSAKIDIuIEthcm1heW9nYSBieSBWaXZla2FuYW5k </content> <cmisra:object> <cmis:properties> <cmis:propertyId propertyDefinitionId="cmis:objectTypeId"><cmis:value>cmis:document</cmis:value></cmis:propertyId> </cmis:properties> </cmisra:object> </entry>
/i/176c5f4d-db63-49ec-9886-c19d6d9eefce denotes folder to create document within.
It is also possible to refer to directories in more natural way – using names.
More info provided here: http://wiki.alfresco.com/wiki/CMIS_Web_Scripts_Reference#Create_.2F_Move_a_Folder_or_Document_.28createDocument.2C_createFolder.2C_createPolicy.2C_moveObject.29You will get quite big chunk of xml with a lot info about newly uploaded document, among these informations you’ll find ID of the document.
3. Overwrite the new document with your big file
PUT /alfresco/upload/workspace/SpacesStore/85c43689-4a38-4a0a-8e58-e24333ffec14/test.pdf?ticket=TICKET_fc7af4c45f138ad366dd5905aaf7a4ab8b9da268
Send file as body of request.
More info about UploadContentServlet : http://wiki.alfresco.com/wiki/URL_Addressability#UploadContentServlet
And that’s all, your file is ready in Alfresco repository!
3 Comments
Hi,
nice example 🙂 Have you tried uploading anything into admin’s sandbox with this servlet. I’m fighting with correct avm path int this context.
Regards, beegees.
P.S. We can always switch to polish 🙂
No I didn’t experiment with admin’s sandbox. Feel free to share your solution if you succeed 🙂 I can also post it here under your name if you like to contribute.
Hi
I need complete example for alfresco and java implementation. Can u please suggest me.Waiting for ur reply. Thanks in advance