15.3 Téléchargement d'un fichier de document

15.3.1 Url

Téléchargement d'un fichier contenu dans un attribut de type file ou image. :

GET api/v1/documents/<documentId>/files/<attrid>

Pour des attributs inclus dans un tableau, l'index indique le rang dans le tableau

GET api/v1/documents/<documentId>/files/<attrid>/<index>

Téléchargement du fichier associé à l'attribut <attrid> du document <documentId>.

L'index <index> facultatif vaut -1 pour les attributs fichiers non contenu dans un tableau.

Dans le cas, d'un attribut inclus dans un tableau, l'index contient le rang dans le tableau de fichier. 0 indique la première rangée.

Si l'index n'est pas indiqué pour un attribut inclus dans un tableau, alors l'ensemble des fichiers sera téléchargé dans une archive "zip". Les fichiers sont alors numérotés suivant l'ordre du tableau.

Ce fichier est extrait du vault.

De manière optionnelle, le nom du fichier peut être indiqué après l'index pour préciser le fichier mais ce nom n'est pas utilisé pour récupérer le fichier.

Pour accéder au fichier, le droit view sur le document est vérifié. De plus, si l'attribut est en visibilité "I" alors le téléchargement du fichier ne sera pas autorisé.

15.3.2 Structure de retour

15.3.2.1 En cas de réussite

Le retour est le contenu du fichier.

15.3.2.2 En cas d'échec

En cas d'échec, une structure JSON est retournée avec l'erreur si aucune extension n'est indiquée dans l'url. Si une extension (différente de json) est indiquée alors l'erreur affiché sera un texte brut.

Les raisons d'échecs spécifiques à cette requête sont

Raison Status HTTP Error Code
Document non trouvé 404 CRUD0200
Privilège insuffisant pour accéder au document 403 CRUD0201
Document supprimé 404 CRUD0219
Propriété demandée inexistante 400 CRUD0202
Attribut demandé inexistant 400 CRUD0605
Visibilité "I" sur l'attribut 403 CRUD0606
Attribut n'est pas de type file ou image 400 CRUD0614
Erreur dans l'index 400 CRUD0610
Erreur dans l'index 400 CRUD0611
Erreur dans l'index 400 CRUD0612
Pas de fichier enregistré 404 CRUD0607
Erreur sur la valeur de l'attribut 400 CRUD0608
Fichier non référencé dans le coffre 400 CRUD0609

15.3.3 Paramètres

Le paramètre inline permet de modifier l'entête HTTP pour demander au navigateur un téléchargement de fichier ou un affichage dans le navigateur dans le cas où celui-ci permet son affichage.

Par défaut, le téléchargement est demandé. L'entête contient

Content-Disposition: attachment

Si inline vaut "true", "1" ou "yes", la disposition vaut :

Content-Disposition: inline

15.3.4 Exemple :

Récupération des informations sur l'attribut my_file du document 41429.

GET /tmp/api/v1/documents/41429?fields=document.attributes.my_file

Réponse :

{
    "success": true,
    "messages": [],
    "data": {
        "document": {
            "attributes": {
                "my_file": {
                    "size": "459285",
                    "creationDate": "2016-05-09 09:11:58",
                    "fileName": "web api.pdf",
                    "url": "api/v1/documents/41429/files/my_file/-1/web%20api.pdf",
                    "mime": "application/pdf",
                    "icon": "api/v1/images/assets/sizes/20x20c/mime-pdf.png",
                    "value": "application/pdf|4090445749180739423|web api.pdf",
                    "displayValue": "web api.pdf"
                }
            },
            "uri": "/tmp/api/v1/documents/41429.json"
        }
    }
}

La réponse de la consultation d'un document contient l'url de téléchargement (dans la propriété url) de l'attribut.

Téléchargement :

GET http://localhost/tmp/api/v1/documents/41429/files/my_file

ou avec le nom du fichier en option et pour un affichage web:

GET http://localhost/tmp/api/v1/documents/41429/files/my_file/-1/web%20api.pdf?inline=1
×