Agrego, si aún quieres hacerlo a tu modo usa esto:
Código PHP:
Ver originalif(preg_match('/^([a-zA-Z0-9\-\_\.]+)$/i',$str)){echo 'nombre de archivo válida'; }else{echo 'nombre de archivo inválido';}
Solo aceptará caracteres alfanuméricos, guiones y puntos, sin caracteres especiales ni acentos