У меня очень интересная проблема.Сценарий, который я написал ниже, работает, но он не работает в 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;
}