Расширение изображения не отображается в PHP файл загрузки - PullRequest
0 голосов
/ 12 января 2019

Я использую этот фрагмент кода для обработки ввода для загрузки нескольких изображений, а также изменения их размера. Это работает, но есть одна маленькая вещь, которая не хочет делать свою работу. Расширение , которое я пытаюсь получить, не отображается в имени файла.

Вот фрагмент кода, где проблема должна быть:

    if(isset($_POST["submit"])) {
    if(is_array($_FILES)) { 
        foreach ($_FILES['fileToUpload']['tmp_name'] as $uploadedFile) { 
        //$uploadedFile = $_FILES['fileToUpload']['tmp_name'];
            if($uploadedFile <> ''){
                $sourceProperties = getimagesize($uploadedFile);
                $newFileName = time();
                $dirPath = "../images/";
                $ext = pathinfo($_FILES['fileToUpload']['name'], PATHINFO_EXTENSION);
                $imageType = $sourceProperties[2];

                switch ($imageType) {

                    case IMAGETYPE_PNG:
                        $imageSrc = imagecreatefrompng($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagepng($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;           

                    case IMAGETYPE_JPEG:
                        $imageSrc = imagecreatefromjpeg($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagejpeg($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;

                    case IMAGETYPE_GIF:
                        $imageSrc = imagecreatefromgif($uploadedFile); 
                        $tmp = imageResize($imageSrc,$sourceProperties[0],$sourceProperties[1]);
                        imagegif($tmp,$dirPath. $newFileName. "_thump.". $ext);
                        break;

                    default:
                        echo "<div class='alert alert-danger'>File is not an image.</div>";
                        exit;
                        break;
                }

            }
         }
     }
}

Например, что-то, что сейчас сохраняется, называется 1547265041_thump. в моей базе данных.

Что не так?

Ответы [ 2 ]

0 голосов
/ 13 января 2019

$_FILES['fileToUpload']['name'] выглядит как массив, что логично, поскольку вы можете загружать несколько изображений одновременно. Чтобы выполнить цикл, я добавил счетчик в foreach для вывода расширения. Теперь это работает хорошо!

0 голосов
/ 12 января 2019

Проверить $ext получить расширение или нет. Если не получится проверить $_FILES['fileToUpload']['name'] чтение или нет. Вы можете отладить их echo.

Проверьте длину вашей базы данных символов. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...