Así de buenas a primeras, noto un error al separar el nombre de la imagen de su extensión. A diferencia de la función
implode, en la función
explode, el separador debe ser sí o sí el primer parámetro, así que desde ahí ya tienes un error. El primer parámetro cuando usas la función
rename, tranquilamente puede ser
$nombreimg
pues veo que solamente unes lo que habías separado previamente.
No sé cómo es que llega el valor de la imagen, si es una subida o si estás tomando el nombre de la imagen previamente guardada (que es lo que tiene más sentido), pero antes de usar la función
copy, verifica que los valores de
$nombre_tmp
y
$mi_ruta_relativa
, sean los correctos.
Y por favor, cuando coloques código, utiliza el highlight respectivo.
Saludos