> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Téléverser des fichiers sur le serveur

> Téléversez des images sur le serveur ABBYY FlexiCapture via la Mobile API à l’aide de requêtes PUT ou POST, avec vérification du hachage MD5 et prise en charge du multipart.

Pour téléverser un fichier sur le serveur, utilisez une requête PUT ou POST.

<div id="create-a-put-request">
  ## Créer une requête PUT
</div>

Pour téléverser un fichier à l’aide d’une requête PUT, utilisez l’URI suivante :

```http theme={null}
https://localhost/flexicapture12/server/MobileApp?filename=[file name]&projectName=[project name]&batchType=[batch name]
```

L’URI accepte les paramètres suivants :

| Paramètre     | Description                                                                                              |
| ------------- | -------------------------------------------------------------------------------------------------------- |
| `projectName` | Le nom du projet. Obligatoire.                                                                           |
| `batchType`   | Le nom du batch. Obligatoire. Si aucune valeur n’est spécifiée, le type de batch par défaut est utilisé. |
| `filename`    | Le nom du fichier à téléverser. Obligatoire.                                                             |

Nous vous recommandons de spécifier explicitement la valeur du champ d’en-tête `Content-type`. Indiquez le fichier à téléverser dans le corps de la requête PUT.

Le serveur prend en charge le hachage. Transmettez au serveur FlexiCapture 12 la valeur de la fonction de hachage MD5. Encodez cette valeur en Base64 avec UTF-16LE, puis transmettez-la dans l’en-tête standard `Content-MD5`. Le serveur calcule la valeur de la fonction de hachage du fichier et la compare à celle transmise dans l’en-tête. Si les valeurs ne correspondent pas, le fichier est supprimé du serveur.

Deux réponses du serveur sont possibles :

* **HTTP 201 (Created)** – Le fichier a été téléversé vers le serveur avec succès.
* **HTTP 400 (Bad request)** – Un paramètre obligatoire est manquant, ou la valeur de la fonction de hachage ne correspond pas à celle spécifiée dans l’en-tête. Aucun fichier n’a été téléversé.

<Note>
  Actuellement, vous ne pouvez pas transmettre les paramètres d’enregistrement au serveur.
</Note>

<div id="create-a-post-request">
  ## Créer une requête POST
</div>

Nous recommandons d’utiliser des requêtes PUT. Si les requêtes PUT ne peuvent pas être utilisées pour une raison quelconque, vous pouvez téléverser un fichier vers le serveur à l’aide d’une requête POST. Les paramètres `projectName` et `batchType` peuvent être transmis dans l’URL, comme dans une requête PUT, ou sous forme de champs de texte dans le corps de la requête.

<div id="pass-multiple-images-in-one-request">
  ### Transmettre plusieurs images dans une requête
</div>

Vous pouvez transmettre plusieurs images dans une seule requête POST. Définissez la valeur du champ `Content-type` sur `multipart/form-data` et indiquez la valeur du séparateur dans le paramètre `limite`. Les noms des fichiers inclus dans une requête ne doivent pas être identiques.

L’exemple suivant transmet deux fichiers dans une seule requête :

```http theme={null}
Content-type: multipart/form-data; boundary=<random string>
--<boundary value>
Content-Disposition: form-data; name=<field name>; filename=<name of file 1><crlf>
Content-MD5: <value of MD5 hash for file><crlf>
<crlf>
<file data>
--<boundary value>
Content-Disposition: form-data; name=<field name>; filename=<name of file 2><crlf>
<crlf>
<file data>
```

<div id="pass-a-text-field">
  ### Transmettre un champ Text
</div>

Vous pouvez également transmettre un champ Text dans une requête POST :

```http theme={null}
--<boundary value>
Content-Disposition: form-data; name="<field name>"<crlf>
<crlf>
<field value><crlf>
```

Terminez la requête par cette chaîne limite :

```http theme={null}
--<boundary value>--<crlf><crlf>
```
