На сервере считываете имидж, проверяете его ориентацию, оборачиваете в ту которую нужно и сохраняете уже в правильном положении.
$image = imagecreatefromstring(file_get_contents($_FILES['user_image']['tmp_name']));
$exif = exif_read_data($_FILES['user_image']['tmp_name']);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$image = imagerotate($image,90,0);
break;
case 3:
$image = imagerotate($image,180,0);
break;
case 6:
$image = imagerotate($image,-90,0);
break;
}
}
$file = 'filename.jpeg';
$uploadfile = $uploaddir . $file;
imagejpeg($image,$uploadfile,90);
//
imagedestroy($image);
Этот код перевернет имидж в верной ориентации. Только для роботы кода должно быть установлено exif расширение для пхп (в php.ini нужно раскоментовать строку extension=php_exif.dll, ну и нужно, конечно же, иметь этот самый php_exif.dll в папке с расширениями )