0
매우 흥미로운 문제가 있습니다. 아래에 작성한 스크립트는 작동하지만 Internet Explorer에서는 작동하지 않습니다. MAX_WIDTH 변수는 450으로 설정되며 이미지가 원래 크기 인 이미지는 업로드되지만 변환 계수가 무엇이든 상관없이 450은 업로드하지 않습니다. 어떤 제안? Chrome, Firefox 및 Safari에서 작동하고 크기가 조정됩니다. 또한 IE 8 버전은 64 비트 버전입니다. 감사.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에서 450으로 크기가 조정됩니다. 나는 파일 자체와 브라우저를 직접보고있다. –