У меня возникла очень интересная проблема. Сценарий, который я написал ниже, работает, но он не работает в 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;
}
php работает на стороне сервера, он не знает, что такое браузер –
Вам придется немного отлаживать здесь. Действительно ли изображение * не изменяется? Возможно, это просто проблема в том, как он отображается в браузере. Поместите некоторые отладочные операторы, чтобы проверить, выполняется ли весь этот код, как ожидалось. Если изображение загружено и правильно прочитано 'imagecreatefrom * ', не должно быть разницы на основе браузера. – deceze
но смотреть это предмет. Я могу загрузить одно и то же изображение в хроме и обернуть загрузку того же точного изображения, т. е., но каждый из них будет уменьшен до 450 в хром, а не в ie. Я смотрю непосредственно на файлы и в браузере. –