Здравствуйте )) Опять я застрял... ))
На этот раз такой вопрос:
Могут ли разные браузеры по-разному интерпретировать php? Дело в том, что один и тот же код Mozilla, Opera, Chrome, Safari пропускают без ошибок, код работает, а в Internet Explorer сценарий не выполняется, и выводятся такие предупреждения:
Warning: imagerotate(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 18
Warning: imagesx(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 20
Warning: imagesy(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 21
Ведь php, насколько я успел понять, серверный язык, почему же тогда всё нормально в других обозревателях... Вот и гадаю теперь чего я не понимаю.
Сам скрипт, указанный в action такой (он просто меняет размер изображения, если его ширина больше 150 px, и записывает его в файл):
<html>
<head>
<title>Загрузка---
</title>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//pictName - имя формы 'file'
if ($_FILES['pictName']['type'] == 'image/jpeg')
{$imageCreate = imagecreatefromjpeg($_FILES['pictName']['tmp_name']);}
elseif ($_FILES['pictName']['type'] == 'image/gif')
{$imageCreate = imagecreatefromgif($_FILES['pictName']['tmp_name']);}
elseif ($_FILES['pictName']['type'] == 'image/png')
{$imageCreate = imagecreatefrompng($_FILES['pictName']['tmp_name']);}
$imageCreate = imagerotate($imageCreate, 5, 0); //поворот изображения на 5 гр.
$wid = imagesx($imageCreate);
$hei = imagesy($imageCreate);
// если ширина изображения > 150px, делаем его размер меньше (150x?) и сохраняем в файл
if ($wid > 150) {
$ko = $wid/150;
$newheight = $hei/$ko;
$newimage = imagecreatetruecolor(150, $newheight);
imagecopyresampled($newimage, $imageCreate, 0, 0, 0, 0, 150, $newheight, $wid, $hei);
imagejpeg($newimage, '/patch/image_arhiv/'.$_FILES['pictName']['name'], 75);
imagedestroy($imageCreate);
imagedestroy($newimage);
unlink($_FILES['pictName']['tmp_name']);
echo "Загрузка удалась";
}
//если ширина <= 150px просто выводим сообщение
else {echo "ширина в норме";}
}
?>
</body>
</html>
Буду очень благодарен за помощь. И уже за внимание спасибо. ))
На этот раз такой вопрос:
Могут ли разные браузеры по-разному интерпретировать php? Дело в том, что один и тот же код Mozilla, Opera, Chrome, Safari пропускают без ошибок, код работает, а в Internet Explorer сценарий не выполняется, и выводятся такие предупреждения:
Warning: imagerotate(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 18
Warning: imagesx(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 20
Warning: imagesy(): supplied argument is not a valid Image resource in /site.ru/scripts1.php on line 21
Ведь php, насколько я успел понять, серверный язык, почему же тогда всё нормально в других обозревателях... Вот и гадаю теперь чего я не понимаю.
Сам скрипт, указанный в action такой (он просто меняет размер изображения, если его ширина больше 150 px, и записывает его в файл):
<html>
<head>
<title>Загрузка---
</title>
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//pictName - имя формы 'file'
if ($_FILES['pictName']['type'] == 'image/jpeg')
{$imageCreate = imagecreatefromjpeg($_FILES['pictName']['tmp_name']);}
elseif ($_FILES['pictName']['type'] == 'image/gif')
{$imageCreate = imagecreatefromgif($_FILES['pictName']['tmp_name']);}
elseif ($_FILES['pictName']['type'] == 'image/png')
{$imageCreate = imagecreatefrompng($_FILES['pictName']['tmp_name']);}
$imageCreate = imagerotate($imageCreate, 5, 0); //поворот изображения на 5 гр.
$wid = imagesx($imageCreate);
$hei = imagesy($imageCreate);
// если ширина изображения > 150px, делаем его размер меньше (150x?) и сохраняем в файл
if ($wid > 150) {
$ko = $wid/150;
$newheight = $hei/$ko;
$newimage = imagecreatetruecolor(150, $newheight);
imagecopyresampled($newimage, $imageCreate, 0, 0, 0, 0, 150, $newheight, $wid, $hei);
imagejpeg($newimage, '/patch/image_arhiv/'.$_FILES['pictName']['name'], 75);
imagedestroy($imageCreate);
imagedestroy($newimage);
unlink($_FILES['pictName']['tmp_name']);
echo "Загрузка удалась";
}
//если ширина <= 150px просто выводим сообщение
else {echo "ширина в норме";}
}
?>
</body>
</html>
Буду очень благодарен за помощь. И уже за внимание спасибо. ))