Tienes varios detalles: declaras las extensiones válidas en un arreglo pero no lo usas.
Luego asumes que los archivos tienen un nombre "normal", es decir nombre.extensión, cuando fallaría con archivos de tipo hola.mundo.jpg para mitigar esto, puedes hacer:
con esto, la extensión pasaría a minúsculas y si el nombre de archivo tiene puntos, tomaría siempre el último (la extensión real)