Si te has topado con el mensaje «Your upload path is not valid or does not exist» mientras intentas subir una imagen o un archivo en WordPress o en un proyecto CodeIgniter, sabes que no es un simple aviso: te deja el sitio cojo. La causa puede ser una ruta mal escrita, permisos caprichosos o una migración que dejó la configuración patas arriba. Vamos a resolverlo sin rodeos.
Qué significa realmente este error de ruta de carga
El sistema intenta guardar el archivo en una carpeta concreta del servidor, pero algo falla. Las tres razones más habituales son: la carpeta no existe, la ruta está mal configurada (típico al pasar de local a producción) o los permisos no dejan escribir. En WordPress hay una cuarta: la base de datos guarda una ruta antigua que ya no existe.
Cuando ves el error Your upload path is not valid or does not exist, lo primero es no tocar nada a lo loco. Identifica el entorno: ¿es un WordPress migrado? ¿Un CodeIgniter con rutas relativas? La solución cambia bastante.
Diagnóstico rápido: dónde está fallando tu ruta de carga
Antes de meter mano, haz una comprobación básica. Mira si la carpeta existe físicamente en el servidor con un cliente FTP o por SSH. Luego revisa los permisos: en Linux, las carpetas deben ser 755 (o 775 en hostings compartidos) y los archivos 644. Si el error aparece solo con ciertos archivos, sospecha de límites de tamaño o de open_basedir.
Si el fallo salta después de migrar el sitio, casi seguro que el problema está en la base de datos de WordPress. Y si es CodeIgniter, revisa si usas rutas relativas como ‘./assets/images/’. Esa es la causa número uno en frameworks PHP.
Solución para WordPress: base de datos y wp-config
El error upload path is not valid or does not exist en WordPress se arregla casi siempre desde phpMyAdmin. Entra en tu base de datos, busca la tabla wp_options (el prefijo puede variar) y localiza la fila con option_name = ‘upload_path’. Si tiene una ruta absoluta antigua, bórrala o ponla a NULL. WordPress usará entonces la ruta por defecto wp-content/uploads.
Si eso no basta, define manualmente la carpeta en wp-config.php, justo antes de la línea «That’s all, stop editing!»:
define(‘UPLOADS’, ‘wp-content/uploads’);
Con esto fuerzas una ruta relativa a la raíz de WordPress. Es útil si tu carpeta de subidas está en una ubicación personalizada. Después, limpia la caché del sitio y prueba a subir un archivo pequeño.
CodeIgniter y frameworks PHP: usa constantes, no rutas relativas
En CodeIgniter el error upload path is not valid or does not exist aparece cuando pones algo como $config[‘upload_path’] = ‘./assets/images/’;. En local funciona, pero en producción el directorio de trabajo cambia y la ruta se rompe. La solución es usar las constantes del framework:
- APPPATH . ‘assets/images/’ si la carpeta está dentro de application/.
- FCPATH . ‘assets/images/’ si está en la raíz del proyecto.
La comunidad recomienda FCPATH para carpetas públicas de subida, porque apunta al front controller. Si además quieres curarte en salud, crea el directorio automáticamente si no existe:
$upload_path = FCPATH . ‘assets/images/’;
if (!is_dir($upload_path)) {
mkdir($upload_path, 0777, TRUE);
}
$config[‘upload_path’] = $upload_path;
Ojo con 0777: úsalo solo para crear la carpeta y luego ajusta permisos a 755. En servidores compartidos, un 775 suele ser suficiente.
Permisos y propietario: el clásico que se te escapa
Muchas veces el error upload path is not valid or does not exist se debe a que el usuario del servidor web no puede escribir. Conéctate por SSH y ejecuta ls -la para ver los permisos. Si la carpeta es de root y Apache corre como www-data, tienes un problema. Cambia el propietario:
chown -R www-data:www-data assets/
chmod -R 755 assets/
En hostings compartidos, a veces el usuario es tu propio nombre de cuenta. Pregunta a soporte si no lo tienes claro. Y si el mensaje menciona open_basedir, revisa el php.ini: la ruta de subida debe estar dentro de las permitidas. Si no tienes acceso, contacta con tu proveedor.
Diferencias entre Windows y Linux que rompen la ruta
En Windows las barras son invertidas y no distinguen mayúsculas; en Linux son normales y sí distinguen. Si desarrollas en Windows y despliegas en Linux, una ruta como C:xampphtdocsuploads no sirve. Usa siempre DIRECTORY_SEPARATOR en PHP para que sea portable:
$config[‘upload_path’] = FCPATH . ‘assets’ . DIRECTORY_SEPARATOR . ‘images’;
Este detalle evita el error upload path is not valid or does not exist en entornos mixtos. No es paranoia, es sentido común.
Configuración por entorno y mantenimiento preventivo
Para no volver a pisar esta piedra, define rutas según el entorno. En CodeIgniter puedes hacer un switch con ENVIRONMENT:
switch (ENVIRONMENT) {
case ‘development’:
$config[‘upload_path’] = FCPATH . ‘assets/uploads/’;
break;
case ‘production’:
$config[‘upload_path’] = ‘/home/usuario/public_html/assets/uploads/’;
break;
}
Además, añade logging cuando falle la subida. Así sabrás exactamente por qué el error upload path is not valid or does not exist aparece:
if (!$this->upload->do_upload(‘archivo’)) {
log_message(‘error’, ‘Fallo subida: ‘ . $this->upload->display_errors());
}
Una estructura de carpetas consistente ayuda: assets/uploads/perfil, assets/uploads/documentos, etc. Y revisa los límites de upload_max_filesize y post_max_size en php.ini; a veces el error de ruta es en realidad un fallo de tamaño.
Impacto en SEO y experiencia de usuario
Arreglar este error no es solo cuestión técnica. Si los usuarios no pueden subir imágenes, tu sitio pierde contenido fresco, y Google lo nota. Un sistema de subidas fiable mejora la velocidad de carga y la experiencia, dos factores que pesan en el SEO. Además, si tienes una tienda o un foro, cada archivo que no sube es una conversión que se pierde.
Así que cuando veas Your upload path is not valid or does not exist, no lo dejes pasar. Revisa la base de datos en WordPress, cambia rutas relativas por constantes en CodeIgniter y verifica permisos. Con estos pasos, el problema se resuelve en minutos y tu plataforma vuelve a funcionar como debe.