> ## 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.

# Cargar archivos al servidor

> Cargue imágenes al servidor de ABBYY FlexiCapture a través de Mobile API mediante solicitudes PUT o POST, con verificación de hash MD5 y compatibilidad con multipart.

Para cargar un archivo al servidor, use una solicitud PUT o POST.

<div id="create-a-put-request">
  ## Crear una solicitud PUT
</div>

Para cargar un archivo mediante una solicitud PUT, pase el URI siguiente:

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

La URI acepta estos parámetros:

| Parámetro     | Descripción                                                                                                   |
| ------------- | ------------------------------------------------------------------------------------------------------------- |
| `projectName` | El nombre del proyecto. Obligatorio.                                                                          |
| `batchType`   | El nombre del lote. Obligatorio. Si no se especifica ningún valor, se utiliza el tipo de lote predeterminado. |
| `filename`    | El nombre del archivo que se va a cargar. Obligatorio.                                                        |

Recomendamos especificar explícitamente el valor del encabezado `Content-type`. Especifique el archivo que se va a cargar en el cuerpo de la solicitud PUT.

El servidor admite el uso de hashes. Pase al servidor FlexiCapture 12 el valor del hash MD5. Codifique el valor en Base64 con UTF-16LE y páselo en el encabezado estándar `Content-MD5`. El servidor calcula el valor hash del archivo y lo compara con el valor pasado en el encabezado. Si los valores no coinciden, el archivo se elimina del servidor.

Son posibles dos respuestas del servidor:

* **HTTP 201 (Created)** – El archivo se cargó correctamente en el servidor.
* **HTTP 400 (Bad request)** – Falta un parámetro obligatorio o el valor hash no coincide con el valor especificado en el encabezado. No se cargó ningún archivo.

<Note>
  Actualmente, no puede pasar los parámetros de registro al servidor.
</Note>

<div id="create-a-post-request">
  ## Crear una solicitud POST
</div>

Recomendamos usar solicitudes PUT. Si, por algún motivo, no es posible usar solicitudes PUT, puede cargar un archivo en el servidor mediante una solicitud POST. Los parámetros `projectName` y `batchType` pueden pasarse en la URL, igual que en una solicitud PUT, o como campos de texto en el cuerpo de la solicitud.

<div id="pass-multiple-images-in-one-request">
  ### Enviar varias imágenes en una solicitud
</div>

Puede enviar varias imágenes en una sola solicitud POST. Establezca el valor del campo `Content-type` en `multipart/form-data` y especifique el valor del separador en el parámetro `boundary`. Los nombres de los archivos incluidos en una solicitud no deben ser iguales.

En el siguiente ejemplo se envían dos archivos en una sola solicitud:

```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">
  ### Enviar un campo de texto
</div>

También puede enviar un campo de texto en una solicitud POST:

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

Finalice la solicitud con esta cadena boundary:

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