Ir al contenido principal

Actualizar Imagen de Perfil del Usuario (1) - [update-img-user]

🧾 Descripción

Actualiza la imagen de perfil de un usuario en ERPNext.
El proceso incluye:

  1. Recepción de un archivo enviado desde la app.

  2. Subida del archivo al endpoint de ERPNext: method/upload_file.

  3. Obtención de la URL generada del archivo.

  4. Actualización del campo user_image del User.

  5. Actualización del campo image en el Employee asociado (si existe).


🚀 Endpoint


POST /update-img-user

La ruta exacta dependerá del archivo de rutas Laravel (api.php).


🔐 Seguridad

  • La función no valida sesión o token, pero el endpoint llamado en ERPNext usa cookies de sesión Guest, lo que indica que debe usarse desde un backend confiable.

  • Se recomienda protegerla en la API propia.


📥 Request (Multipart / Form-Data)

Campos requeridos

Campo Tipo Requerido Descripción
file file Imagen a subir (jpg, png, etc.)
user string Nombre del usuario en ERPNext para actualizar (User.name).

Ejemplo (form-data)


file: avatar.png user: user@example.com

📤 Responses

✔️ 200 – Imagen actualizada correctamente


{ "valor": true, "msn": "Imagen de usuario actualizado correctamente", "data": { ... } }

❌ 400 – Faltan datos o error al subir archivo

Ejemplo de error al no recibir archivo:


{ "msn": "File could not be processed" }

❌ 500 – Error de carga o actualización


{ "valor": false, "msn": "Error al actualizar la imagen de usuario", "data": { ... } }

🧩 Lógica Interna

1. Lectura del archivo

$cfile = new \CURLFile($_FILES["file"]['tmp_name'], $_FILES["file"]['type'], $_FILES["file"]['name']);

2. Subida a ERPNext

  • Endpoint usado: POST /method/upload_file

  • Cabecera usada: Cookie: full_name=Guest; sid=Guest; system_user=no; user_id=Guest; user_image=

⚠️ Se sube el archivo como usuario Guest.

3. Validación de respuesta

Debe existir: message.file_url

Si no existe → error.

4. Actualizar información del User

PUT resource/User/{user} { "user_image": "<file_url>" }

5. Actualizar Employee si corresponde

  • Busca Employee cuyo user_id coincida:


SELECT user_id, name FROM tabEmployee WHERE user_id = {user}

Si existe:

PUT resource/Employee/{employee_id} { "image": "<file_url>" }

📚 Request/Response Schemas

Request (multipart/form-data)


file: File user: string

Response (success)

{ "valor": true, "msn": "Imagen de usuario actualizado correctamente", "data": { "user_image": "url_file" } }

🧪 Ejemplo de uso (curl)

curl -X POST https://midominio.com/api/update-img-user \ -F "file=@/home/user/avatar.png" \ -F "user=user@example.com"