Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > проблема с размерами файла при загрузке на сервер


Автор: Shark 4.3.2009, 18:01
Код

        $max_image_width    = 160;
        $max_image_height    = 160;

            $size = GetImageSize($_POST['loadsavik']);

        if (($size[0] < $max_image_width)&& ($size[1] < $max_image_height) && $_FILES['loadsavik']['size'] > 30*1024) 

            {
                echo 'Превышен объем файла';
        exit;
            }

Проблема в том, что загружается любая картинка которая не превышает 30 Кб... а размеры width и height игнорируются... в чем проблема?

Автор: bars80080 4.3.2009, 18:44
а ты пробовал проверять что у тебя в $size?
учитывая что размер изображения берётся не от файла, а от строкового литерала... то трудно ожидать что-то иного

проверяйте размер у самого файла  GetImageSize($_FILES['loadsavik']['tmp']), если не получится, то тогда у файла после перемещения

Автор: Shark 4.3.2009, 19:09
bars80080, 
Цитата

проверяйте размер у самого файла  GetImageSize($_FILES['loadsavik']['tmp']), если не получится, то тогда у файла после перемещения 

не получилось...
А зачем проверять после перемещения? в таком случае файл останется на сервере и его придется удалять, следовательно, лишний код писать на удаление.. во-вторых, это лишняя трата времени для пользователя...

Есть другие варианты?

Автор: bars80080 4.3.2009, 20:10
Цитата(Shark @  4.3.2009,  18:09 Найти цитируемый пост)
в таком случае файл останется на сервере и его придется удалять

файл уже по-любому на сервере. неужели ты думаешь, что пхп способен померять размер файла на компе пользователя?

Автор: Shark 4.3.2009, 21:02
Цитата

файл уже по-любому на сервере. неужели ты думаешь, что пхп способен померять размер файла на компе пользователя? 

проверка идет, до перемещения файла в нужную мне папку, следовательно он хранится во временной папке, если он не смог быть перемещен по какой-нить причине, он удаляется


---------
Мне нужна помощь, а не слова, что где хранится

Автор: Photon 4.3.2009, 21:22
Код

$max_image_width    = 160;
$max_image_height    = 160;
$size = getimagesize($_FILES['loadsavik']['tmp_name']);
if (($size[0] < $max_image_width) || ($size[1] < $max_image_height) || $_FILES['loadsavik']['size'] > 30*1024) 

     {
           echo 'Превышен объем файла';
           unlink($_FILES['loadsavik']['tmp_name'];
           exit;
      }


Так все будет работать..

Автор: Shark 4.3.2009, 21:47
Код

$max_image_width    = 160;
$max_image_height    = 160;
$size = getimagesize($_FILES['loadsavik']['tmp_name']);
if (($size[0] < $max_image_width) || ($size[1] < $max_image_height) || $_FILES['loadsavik']['size'] > 30*1024) 

     {
           echo 'Превышен объем файла';
           unlink($_FILES['loadsavik']['tmp_name']);
           exit;
      }

не работает, это во первыйх... во-вторых, смотри внимательней какой код выкладываешь!...
Найди у себя ошибку
Код

$max_image_width    = 160;
$max_image_height    = 160;
$size = getimagesize($_FILES['loadsavik']['tmp_name']);
if (($size[0] < $max_image_width) || ($size[1] < $max_image_height) || $_FILES['loadsavik']['size'] > 30*1024) 

     {
           echo 'Превышен объем файла';
           unlink($_FILES['loadsavik']['tmp_name'];
           exit;
      }

подсказка: строка 8

так работает
Код

if (($size[0] > $max_image_width) || ($size[1] > $max_image_height) || ($_FILES['loadsavik']['size'] > 30*1024))


Автор: Photon 4.3.2009, 22:51
Shark, ну забыл скобочку поставить.. smile  Бывает.. smile

Кстати, строку с if почти скопировал из исходного кода, только && на || поменял..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)