Спасибо.
Однако вопрос до конца не решён.
Проверил еще раз.
Дано два тестовых фаила:
первый - маленький 150*112 (по геометр. размерам подходит). Сохранён специально без сжатия - 44 Кб
(по Кб не подходит) - загружаем только его - PHP честно пишет - не подходит - ура!
второй - большой 600*450 (по геометр. размерам подходит). Сохранён специально без сжатия - 323 Кб (по Кб не подходит) - загружаем только его - PHP пишет - "Размеры картинки слишком большие. Для фото-миниатюры ширина = 150px, высота максимально - 300px, для полной фотографии ширина максимально 800px, высота максимально - 1000px." - не то - косяк!
Грузим оба - PHP честно пишет - не подходит - ура!
(ссылаясь скорее всего на первый фаил)
Жмем фаилы по размеру - ошибок нет - грузим на сервер и в базу.
Всё бы ничего, если бы делал интерфейс для себя. А так пользователь будет биться головой о стенку (хоть весь лист испиши help'ом) почему размеры большой картинки по пикселям верны, а картинка не грузится и выдаёт что неправильные размеры по пикселям.
P.S. Сделал то же самое для одного фаила
При выполнение условий всё грузиться.
Если взять картинку меньшую по пикселям, но большую по Кб, пишет большая по Кб.
Если взять нужную по пикселям, но большую по Кб, пишет неправильные размеры по пикселям.
PHP код:
<?
$max_image_width = 150;
$max_image_height = 301;
$max_image_size = 20 * 1024;
$valid_types = array("jpg", "jpeg", "JPG", "JPEG");
if($post=="Y")
{
// Каталог, в который мы будем принимать файл:
$uploaddir = 'upload/';
$filename1_1 = $_FILES['image_path']['name'];
if (eregi("[а-яА-Я]", $filename1_1))
{
$error_1="<b>Ошибка:</b> <font color=#FF0000>В имени фаила не должно быть русских букв.</font>";
}
else
{
$add=rand(1,10).rand(5,20).rand(3,40).rand(1,100);
$name=substr($filename1_1, 0, strrpos($filename1_1, "."));
$name_hex=bin2hex($name);
$filename2_1 = $_FILES['image_path']['tmp_name'];
if (strrpos($filename1_1, ".") > 9)
{
$error_2="<b>Ошибка:</b> <font color=#FF0000>Слишком длинное имя фаила. Допустимо 8 символов до точки.</font>";
}
else
{
$ext = substr($filename1_1, 1 + strrpos($filename1_1, "."));
$image_path = $uploaddir.basename($add.'_'.$name_hex.'.'.$ext);
if (filesize($filename2_1) > $max_image_size)
{
$error_3="<b>Ошибка:</b> <font color=#FF0000>Размер фаила слишком большой. Допустимо не более 20Кб.</font>";
}
elseif (!in_array($ext, $valid_types))
{
$error_4="<b>Ошибка:</b> <font color=#FF0000>Неправильный тип фаила. Допустимо (jpg, jpeg) или фаил не указан.</font>";
}
else
{
$size = getimagesize($filename2_1);
if (($size) && ($size[0] == $max_image_width) && ($size[1] < $max_image_height))
{
// Копируем файл из каталога для временного хранения файлов:
if (copy($filename2_1, $image_path))
{
//грузим в базу и на сервер
} else $error_5="<b>Ошибка:</b> <font color=#FF0000>Не удалось загрузить файл на сервер!</font";
} else $error_6="<b>Ошибка:</b> <font color=#FF0000>Неправильные размеры изображения. Измените, пожалуйста, размеры изображения до: ширина = 150px, высота максимально - 300px.</font>";
}
}
}
}
echo $error_1;
echo $error_2;
echo $error_3;
echo $error_4;
echo $error_5;
echo $error_6;
?>
<form action="<? $PHP_SELF; ?>" method="post" enctype=multipart/form-data>
<input type="hidden" name="post" value="Y">
<input type="hidden" name="MAX_FILE_SIZE" value="20000">
....
<input type="file" name="image_path" value="<? echo $image_path; ?>" size=25>
.....
<input type="submit" value="Сохранить" >
</form>