2012-02-13 2 views
0

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

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

php работает на стороне сервера, он не знает, что такое браузер –

+0

Вам придется немного отлаживать здесь. Действительно ли изображение * не изменяется? Возможно, это просто проблема в том, как он отображается в браузере. Поместите некоторые отладочные операторы, чтобы проверить, выполняется ли весь этот код, как ожидалось. Если изображение загружено и правильно прочитано 'imagecreatefrom * ', не должно быть разницы на основе браузера. – deceze

+0

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

ответ

3

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

браузер не имеет ничего общего с серверными скриптами происходят не так, как это на стороне клиента.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^