Pro - un formulario Free rechaza un envío multipart con archivos adjuntos.
multipart/form-data estándar al mismo endpoint
/submit que ya usas, sin un endpoint de subida separado,
sin necesidad de JavaScript.
Agregar un input de archivo
HTML simple (sin JS)
Agregaenctype="multipart/form-data" al formulario y un input de archivo:
React / Vue / Astro / cualquier JS
Construye unFormData y envíalo, no establezcas Content-Type tú mismo;
el navegador agrega el límite multipart correcto:
Límites
Un archivo que supere el límite por archivo, o un envío con demasiados
archivos, se rechaza directamente, nada se descarta ni se trunca en
silencio:
Qué pasa con un archivo subido
- El archivo se sube al almacenamiento (Cloudflare R2) y se mantiene privado mientras se escanea. Nada se libera antes de que termine el escaneo, esto es fail-closed: si el escaneo no puede confirmar que un archivo está limpio, no se pone a disposición.
- Si el archivo pasa, se vuelve descargable desde tu panel, abre el envío y descarga el archivo. Las descargas están limitadas al propietario: solo la cuenta dueña del formulario puede obtenerlo, mediante un enlace autenticado de corta duración. Los archivos nunca son accesibles públicamente por URL.
- Si el archivo falla el escaneo (o es un tipo no seguro o no reconocido), se bloquea y nunca se te entrega.
Free vs. Pro
Los formularios Free no aceptan subidas de archivos. Enviar una solicitud multipart con archivos adjuntos contra un formulario del plan Free se rechaza con:Sin configuración
No hay ningún interruptor en el panel que activar, cualquier formulario del plan Pro acepta envíosmultipart/form-data con campos de archivo tan
pronto como agregues un <input type="file"> (o adjuntes archivos a un
FormData) en tu formulario.