Изменение размера изображения PHP не изменяется в Internet Explorer - PullRequest
0 голосов
/ 13 февраля 2012

У меня очень интересная проблема.Сценарий, который я написал ниже, работает, но он не работает в Internet Explorer.Переменная MAX_WIDTH установлена ​​в 450, и она по-прежнему загружает изображение с исходными размерами изображения, а не 450, каким бы ни был коэффициент преобразования.Какие-либо предложения?Он работает и изменяет размеры в Chrome, Firefox и Safari.Кроме того, версия IE, на которой я тестирую, является 64-разрядной версией IE 8.Спасибо.

private function checkForResize() {
    $fileTypeArray = array('image/gif', 'image/jpeg', 'image/png');
    $origType = $this->_uploadType;
    if (in_array($origType, $fileTypeArray)) {
        $origImage = $_FILES[$this->_uploadInputField]['tmp_name'];
        $imageWidth = getimagesize($origImage);
        if ($imageWidth[0] > MAX_WIDTH) {
            // Resize here
            if ($origType == 'image/gif') {
                $imageSrc = imagecreatefromgif($origImage);
            } else if ($origType == 'image/jpeg') {
                $imageSrc = imagecreatefromjpeg($origImage);
            } else if ($origType == 'image/png') {
                $imageSrc = imagecreatefrompng($origImage);
            } else {
                return false;
            }
            $width = $imageWidth[0];
            $height = $imageWidth[1];
            $newHeight = ($height / $width) * MAX_WIDTH;
            $tmpImage = imagecreatetruecolor(MAX_WIDTH, $newHeight);
            $this->setTransparency($tmpImage, $imageSrc);
            imagecopyresampled($tmpImage, $imageSrc, 0, 0, 0, 0, MAX_WIDTH, $newHeight, $width, $height);
            imagejpeg($tmpImage, UPLOAD_DIR.DS.$this->_uploadSafeName, 100);
            imagedestroy($imageSrc);
            imagedestroy($tmpImage);
            return true;
        }
    }
    return false;
}

1 Ответ

3 голосов
/ 13 февраля 2012

Преобразование моего комментария в ответ:

Браузер не имеет ничего общего с ошибками серверных сценариев, так как он на стороне клиента.

Что может быть неправильным, так это то, что тип MIME является ненадежной информацией, поскольку именно браузер обнаруживает и отправляет тип MIME.

И IE иногда отправляет image/pjpeg или image/x-png MIME-тип при работе с jpgs или pngs, поэтому вам нужно проверять их также при проверке.

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