Bonjour.
Pour information, la constante IMAGES est obsolète, utilises plutôt la constante WEBROOT_DIR pour tomber à coup sur dans le répertoire webroot.
Source : Définitions des constantes du noyau.
Il te faut donc faire :
WEBROOT_DIR . DS . 'img' . DS . $this->Post->id . '.' $extension
Par contre vérifies si la constante WEBROOT_DIR si elle n'inclue pas le directory separator après son nom, car je ne sais plus trop.
Je ne sais pas si tu le fais, mais si ce n'est pas le cas, je te conseille de faire la vérification via la validation du modèle concernant l'extension et la taille de l'image.
Ce qui t'évitera des manipulations au niveau du controller pour faire ses vérifications.
Ensuite, je ne sais pas si c'est une erreur lors de ta recopie de code, mais contrôle que tu n'aies pas oublié l'ouverture de l’accolade de la fonction.