Ir al contenido principal

Adjuntar imagen (1) - [uploadFileErp]

🧾 Descripción

Este servicio permite subir un archivo al ERP utilizando el endpoint interno method/upload_file.

Funciona enviando el archivo recibido desde el request PHP ($_FILES["file"]) mediante cURL hacia el servicio de carga del ERP y devuelve los metadatos del archivo subido:

  • URL pública

  • Fecha de creación

  • Nombre del archivo

  • Tamaño del archivo

Es un servicio auxiliar utilizado por funcionalidades que requieren cargar documentos o imágenes hacia el servidor del ERP.


🚀 Endpoint

POST /upload-file-erp

📌 Requiere enviar un archivo en el campo file del formulario.


🔐 Seguridad

No utiliza el token del usuario.
El servicio realiza la subida como Guest, usando los headers de cookie:

Cookie: full_name=Guest; sid=Guest; system_user=no; user_id=Guest; user_image=

➡️ Esto significa que la API de ERP ya está configurada para permitir carga de archivos desde clientes externos bajo permisos Guest.


🧠 Flujo del Servicio (resumen)

  1. Captura el archivo enviado en $_FILES["file"].

  2. Crea un objeto CURLFile con:

    • ruta temporal (tmp_name)

    • tipo MIME

    • nombre original

  3. Envía el archivo al endpoint:


    POST /method/upload_file
  4. Espera la respuesta del ERP.

  5. Decodifica la respuesta JSON.

  6. Retorna un objeto con:

    • url del archivo

    • fecha de creación

    • nombre

    • tamaño


📥 Request Body

Debe enviarse como multipart/form-data.

Ejemplo (form-data):

Campo Tipo Descripción
file File Archivo a subir

Ejemplo en HTML:

<form method="POST" enctype="multipart/form-data"> <input type="file" name="file"> </form>


📤 Response 200 – Ejemplo

{ "url": "/files/documento.pdf", "creation": "2025-01-14 09:43:55.12893", "file_name": "documento.pdf", "file_size": 120394 }

❗ Posibles Errores

1. Error al procesar el archivo

{ "msn": "Failed to open stream..." }

2. Error en cURL

{ "msn": "cURL Error #:Timeout..." }

3. El ERP no devuelve estructura válida

{ "msn": "Error al procesar respuesta del ERP" }

📚 Estructura de respuesta del ERP

El ERP retorna algo como:

{ "message": { "file_url": "/files/image.png", "creation": "2025-01-15 10:45:00.12584", "file_name": "image.png", "file_size": 48204 } }

🗃 Lógica en pseudo-código

try: file = new CURLFile(tmp, type, name) catch error: return error send file to ERP via cURL → POST /method/upload_file if error in curl: return error parse response return { url: response.message.file_url, creation: response.message.creation, file_name: response.message.file_name, file_size: response.message.file_size }