- La subida de archivos por http tiene un estandar marcado
- Este estandar indica que el content-type de la solicitud debe ser de tipo multipart/form-data y un boundary.
- Lo primero indica el tipo de solicitud, que habitualmente es una serie de campos de un formulario, estos campos pueden contener texto plano o un archivo.
- El boundary, es una secuencia de caracteres que sirve para diferenciar cada una de las partes del mensaje http, ya que todos los campos que se envian van juntos entonces es necesario saber cuando acaba uno y empieza el siguiente.
- Cuando enviamos la solicitud desde un cliente HTTP o un navegador web, el boundary y el body se crean automaticamente, no tenemos que poner manualmente los content-disposition o content-type. En JS simplemente añadimos la información del formulario y el content type multipart
- En el servidor debemos obtener cada uno de los valores o archivos, validarlos y almacenarlos o lo que queramos hacer con ellos.
Headers
POST /uploads HTTP/1.2
Host: example.com
Content-Type: multipart/form-data;boundary=------------------------d74496d66958873e
Body
--------------------------d74496d66958873e
Content-Disposition: form-data; name="person"
--------------------------d74496d66958873e
Content-Disposition: form-data; name="secret"; filename="file.txt"
Content-Type: text/plain
contents of the file
--------------------------d74496d66958873e
Content-Disposition: form-data; name="imagen1"; filename="Solucion.png"
Content-Type: image/png
�PNG
→
IHDR♦9☺♠�D�☺sRGB��∟�♦gAMA�� �a♣ pHYs��☺�o�d��IDATx^���D ND�B
�
--------------------------d74496d66958873e--
Distributed under the MIT License. See LICENSE.md
for more information.