Обработка изображения при загрузке на сервер php

Использую такой код для обработки изображения перед загрузкой на сервер, но иногда изображения загружаются повёрнутыми на 90 градусов влево, хотя на телефоне они отображаются правильно, почему может так происходить? И ещё вопрос, иногда изображения загружаются в виде чёрных квадратов и прямоугольников, Возможно это как-то связано с разрешением. Возможно ли это исправить в данном коде?

 $filename = $_FILES ["filename"]["tmp_name"];
    $size = getimagesize($filename);
    if ($size){
        $width = 1000; 
        $height = 1000;
        list($width_orig, $height_orig) = getimagesize($filename);
        if ($width && ($width_orig < $height_orig)) { 
            $width = ($height / $height_orig) * $width_orig; 
        } else { 
            $height = ($width / $width_orig) * $height_orig; 
        } 
            $image_p = imagecreatetruecolor($width, $height); 
            $image = imagecreatefromjpeg($filename); 
            imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
            $dir = '../img/' . $id . '/';
            mkdir($dir, 0777, true);
            $newFileName = $prefix . '.jpg';
            $newFileNamedb = $dir . $newFileName;
            imagejpeg($image_p, $dir . $newFileName, 75); 
            unlink ($filename);
            $sql = "INSERT INTO users (image) VALUES ('$newFileNamedb)";
        if (mysqli_query($conn, $sql)) {
                echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=../login.php">';
        }
    } else {
          exit("Загружаемый файл не изображение..."); 
    }   

Ответы (0 шт):