File URLs within JSF Context Only
The default URL patterns for downloading files from within the JSF environment are:
http://NUXEO_SERVER/nuxeo/nxfile/{repository}/{uuid}/blobholder:{blobIndex}/{fileName}
http://NUXEO_SERVER/nuxeo/nxfile/{repository}/{uuid}/{propertyXPath}/{fileName}
Where :
nxfile
is the download servlet. Note thatnxbigfile
is also accepted for compatibility with older versions.repository
is the identifier of the target repository.uuid
is the uuid of the target document.blobIndex
is the index of the Blob inside theBlobHolder
adapter corresponding to the target Document Type,starting at 0:blobholder:0
,blobholder:1
.propertyXPath
is the xPath of the target Blob property inside the target document. For instance:file:content
,files:files/0/file
.fileName
is the name of the file as it should be downloaded. This information is optional and is actually not used to do the resolution.?inline=true
is an optional parameter to force the download to be made withContent-Disposition: inline
. This means that the content will be displayed in the browser (if possible) instead of being downloaded.
Here are some examples:
- The main file of the document:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496
- The main file of the document with a different name:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496/blobholder:0/mydocument.pdf
- An attached file of the document:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496/blobholder:1
- A file stored in the given property:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496/myschema:content
- A file stored in the given complex property, downloaded with a specific filename:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496/files:files/0/file/myimage.png
- The main file of the document inside the browser instead of being downloaded:
http://127.0.0.1:8080/nuxeo/nxfile/default/776c8640-7f19-4cf3-b4ff-546ea1d3d496?inline=true
For Picture document type, a similar system is available to be able to get the attachments depending on the view name:
http://NUXEO_SERVER/nuxeo/nxpicsfile/{repository}/{uuid}/{viewName}:content/{fileName}
where, by default, viewName
can be Original, OriginalJpeg, Medium, Thumbnail.
Producing File URLs from JSF Templates
For a single file, in schema "file", where blob field is named "file" and file name field is named "filename":
<nxh:outputLink
value="#{nxd:fileUrl('downloadFile', currentDocument, field.fullName, currentDocument.file.filename)}">
<nxh:graphicImage
value="#{nxd:fileIconPath(currentDocument[field.schemaName][field.fieldName])}"
rendered="#{! empty nxd:fileIconPath(currentDocument[field.schemaName][field.fieldName])}" />
<nxh:outputText value="#{currentDocument.file.filename}" />
</nxh:outputLink>
For a list of files, in schema "files", where list name is "files" and in each item, blob field is named "file" and file name field is named "filename":
<nxu:inputList value="#{currentDocument.files.files}" model="model"
rendered="#{not empty currentDocument.files.files}">
<nxh:outputLink
value="#{nxd:complexFileUrl('downloadFile', currentDocument, 'files:files', model.rowIndex, 'file', currentDocument.files.files[model.rowIndex].filename)}">
<nxh:graphicImage
value="#{nxd:fileIconPath(currentDocument.files.files[model.rowIndex].file)}"
rendered="#{! empty nxd:fileIconPath(currentDocument.files.files[model.rowIndex].file)}" />
<nxh:outputText value="#{currentDocument.files.files[model.rowIndex].filename}" />
</nxh:outputLink>
<t:htmlTag value="br" />
</nxu:inputList>
This gives you get URLs of the form:
http://localhost:8080/nuxeo/nxfile/default/8f5aca13-e9d9-4b7b-a1d9-a1dcd74cc709/blobholder:0/mainfile.jpg
http://localhost:8080/nuxeo/nxfile/default/47ad14f2-c7a6-4a3f-8e4b-6c2cf1458f5a/files:files/0/file/firstfile.jpg
Namespaces:
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:nxh="http://nuxeo.org/nxweb/html"
xmlns:nxl="http://nuxeo.org/nxforms/layout"
xmlns:nxu="http://nuxeo.org/nxweb/util"
Related topics in this documentation