wp_upload_media: subir medios en Base64
Sube una imagen enviada directamente como una carga útil en base64. Es la más flexible de las dos herramientas de subida, porque no tiene restricciones de red.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
filename |
Sí | El nombre de archivo, incluida la extensión |
base64 |
Sí | Los datos de la imagen |
post_id |
No | Adjunta la subida a una entrada |
description |
No | La descripción del adjunto |
dry_run |
No | Informa sin realizar la subida |
Permisos
Allow content writes abierto, y la capacidad upload_files.
Ámbitos: mcp:read, mcp:write, wp:content:read, wp:content:write.
La carga útil
Acepta una cadena base64 simple, o un URI de datos del tipo data:image/png;base64,… — el prefijo se elimina automáticamente, de modo que un cliente puede enviar el que tenga.
El tamaño máximo decodificado es de 10 MB. Base64 se infla aproximadamente un tercio, por lo que una imagen de 10 MB llega como unos 13 MB de carga útil.
La extensión en filename es determinante
La validación se produce dos veces, y la primera comprobación es sobre el nombre de archivo:
- La extensión debe ser
jpg,jpeg,png,gif,webpoavif. Cualquier otra cosa se rechaza conpom_ai_mcp_media_extension_deniedantes de que el archivo siquiera se examine. - El contenido real se inspecciona después de que los bytes se escriban en disco. Una discrepancia se rechaza con
pom_ai_mcp_media_mime_denied.
Así que un PNG llamado photo.txt falla la primera comprobación, y un PDF llamado photo.png falla la segunda. Ambas cosas son deliberadas.
Dale al nombre de archivo la extensión que coincida con los datos reales.
Usa el ensayo
dry_run devuelve el nombre de archivo saneado y el recuento de bytes decodificado sin subir:
Usa un ensayo y dime el nombre de archivo y el tamaño que crearías.
Este es el ensayo más útil del grupo de medios. Decodifica la carga útil, por lo que detecta una cadena base64 truncada o mal formada como un tamaño que no parece correcto — antes de que la subida falle por un motivo más difícil de leer.
Los nombres de archivo se sanean
filename se pasa por el saneador de nombres de archivo de WordPress, de modo que los espacios y los caracteres inusuales se normalizan. El nombre almacenado puede diferir del que enviaste; la respuesta te indica lo que se creó.
WordPress también deduplica: subir photo.jpg dos veces produce photo.jpg y photo-1.jpg en lugar de una sobrescritura.
Cuándo preferir esta opción sobre la herramienta de URL
Siempre, a menos que tengas específicamente una URL pública y ningún byte:
- la imagen fue generada por el asistente;
- la URL de origen redirige, lo que
wp_upload_media_from_urlno seguirá; - el origen está detrás de autenticación;
- el origen está en una red privada, lo que la herramienta de URL rechaza.
Qué devuelve
El adjunto creado con la forma estándar: id, title, url, mime_type, alt, caption, description y date.
Conserva el id. Establecer el texto alternativo, asignar una imagen destacada y colocar la imagen hacen referencia a él.
Qué no hace
- No establece el texto alternativo. Subir crea un adjunto con el texto alternativo vacío. Establécelo con
wp_update_media. - No asigna una imagen destacada.
post_idadjunta la subida a una entrada en el sentido de biblioteca, lo cual no es lo mismo que convertirla en la imagen destacada. Consultawp_set_featured_image. - No redimensiona. WordPress genera sus tamaños registrados a partir de lo que envías, de modo que un original pequeño sigue siendo pequeño.
Cómo usarla bien
Sube esta imagen como \"workshop-interior.jpg\" y luego muéstrame el ID del adjunto y la URL.
Después, como pasos separados:
Establece el texto alternativo como \"…\".
Establécelo como la imagen destacada de la entrada 412.
Problemas comunes
| Síntoma | Causa |
|---|---|
| La escritura se rechaza | La puerta de escritura de contenido está cerrada |
pom_ai_mcp_forbidden |
El usuario que actúa carece de upload_files |
pom_ai_mcp_invalid_media |
La carga útil está vacía, no es base64 válida o supera los 10 MB decodificados |
pom_ai_mcp_media_extension_denied |
La extensión del nombre de archivo no es un tipo de imagen aceptado |
pom_ai_mcp_media_mime_denied |
El contenido del archivo no es un tipo de imagen aceptado |
pom_ai_mcp_temp_file_failed |
El servidor no pudo escribir un archivo temporal |
| La imagen es demasiado pequeña en la página | La resolución de origen; nada aquí la amplía |