> ## 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="creating-a-put-request">
  ## Création d’une requête PUT
</div>

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

*[https://localhost/flexicapture12/server/MobileApp?filename=\[file](https://localhost/flexicapture12/server/MobileApp?filename=\[file) name]\&projectName=\[project name]\&batchType=\[batch name]*, où :

| **Nom**     | **Valeur**                                                                                                      |
| ----------- | --------------------------------------------------------------------------------------------------------------- |
| projectName | Le nom du projet. Paramètre obligatoire                                                                         |
| batchType   | Le nom du lot. Paramètre obligatoire. Si aucune valeur n’est spécifiée, le type de lot par défaut sera utilisé. |
| filename    | Le nom du fichier à téléverser. Paramètre obligatoire                                                           |

Nous vous recommandons de spécifier explicitement la valeur de l’en-tête Content-type. Le fichier à téléverser est indiqué dans le corps de la requête PUT.

Le hachage est pris en charge. Transmettez au serveur FlexiCapture 12 la valeur de la fonction de hachage MD5. Cette valeur doit être encodée en Base64 à l’aide de UTF-16LE et transmise dans l’en-tête standard Content-MD5. Le serveur calculera la valeur de la fonction de hachage pour le fichier et la comparera à la valeur transmise dans l’en-tête. Si les valeurs ne correspondent pas, le fichier sera supprimé du serveur.

Le serveur peut renvoyer deux réponses :

* HTTP 201 (Created) - Le fichier a été téléversé avec succès vers le serveur.
* HTTP 400 (Bad request) - Certains paramètres obligatoires n’ont pas été spécifiés/La valeur de la fonction de hachage ne correspond pas à celle indiquée dans l’en-tête et 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="creating-a-post-request">
  ## Création d’une requête POST
</div>

Nous recommandons d’utiliser des requêtes PUT. Si, pour une raison quelconque, les requêtes PUT ne peuvent pas être utilisées, 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.

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

<Accordion title="Exemple de transmission de plusieurs fichiers">
  ```
  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>
  ```
</Accordion>

Vous pouvez également transmettre un champ de texte à l’aide d’une requête POST.

<Accordion title="Exemple de transmission d’un champ de texte">
  ```
  --<boundary value>
  Content-Disposition: form-data; name=”<field name>”<crlf>
  <crlf>
  <field value><crlf>
  ```
</Accordion>

La requête se termine par la chaîne

```
--<boundary value>--<crlf><crlf>
```
