Если вы хотите перезаписать исходный файл изображения, который находится на сервере, вам просто нужно добавить параметры в финальный вызов imagejpeg (), чтобы указать, где вы хотите сохранить результат:
imagejpeg($rotate, $filename);
Просто будьте осторожны с тем, что JPEG - это формат с потерями, поэтому ЛЮБОЕ сохранение вообще (даже если вы не поворачиваете его) приведет к ухудшению качества изображения. Вы можете указать качество изображения в качестве 3-го параметра для этого же вызова (если вы хотите попытаться сохранить максимально возможное качество за счет увеличения размера файла):
imagejpeg($rotate, $filename, 90); // Saves at 90 quality
Теперь, если это касается образа на стороне клиента, это другая история. PHP работает на сервере, поэтому он сможет работать только с изображениями, которые также находятся на том же сервере или доступны ему. PHP на сервере не может вращать и перезаписывать изображение, которое находится на компьютере посетителя.
Чтобы это произошло, изображение должно быть загружено с посетителя на сервер, затем повернуто, а затем посетителю потребуется вручную сохранить изображение на своем собственном компьютере. PHP не может касаться файловых систем машин посетителей и не может заставить браузеры посетителей FORCE загружать и перезаписывать существующий файл.
Так что, если все это на стороне сервера, то подход PHP, который у вас есть, определенно сработает.