Показать сообщение отдельно
Старый 16.10.2009, 03:21     # 3
killhunter
Junior Member
 
Аватар для killhunter
 
Регистрация: 24.10.2002
Сообщения: 68

killhunter Известность не заставит себя ждать
Спасибо.

Однако вопрос до конца не решён.
Проверил еще раз.
Дано два тестовых фаила:
первый - маленький 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_10strrpos($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_1strrpos($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>
__________________
Через терни к звездам!

Последний раз редактировалось killhunter; 16.10.2009 в 03:37.
killhunter вне форума