Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ini_get('upload_max_filesize') в байтах

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Telnet
Отправлено: 09 Ноября, 2013 - 16:58:52
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




Всем привет
подскажите я пишу загрузку файлов на сервер
и там конечно делаю проверку на превышение лимита максимально загруженного файла
вот что то типа того
$_FILES["upload_file"]["size"] < ini_get('upload_max_filesize')
но вот только ini_get('upload_max_filesize') мне возвращает не число байт а 50M
а $_FILES["upload_file"]["size"] [size] => 2679
т.е там число а там строка, как бы это все привести к единому виду

а еще если кто знает прошу объяснить разницу между upload_max_filesize и post_max_size
или post_max_size это для данных переданных черех post а upload_max_filesize вообще для всего остального
но на сколько я помню через Get можно передать не более чем 4 КБ как же туда помещаются меговые файлы?
 
 Top
OrmaJever Модератор
Отправлено: 09 Ноября, 2013 - 17:04:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Telnet пишет:
но вот только ini_get('upload_max_filesize') мне возвращает не число байт а 50M

ini_get возвращает именно то что написано в конфиге, а в конфиге именно такая запись.
Telnet пишет:
кто знает прошу объяснить разницу между upload_max_filesize и post_max_size

upload_max_filesize ограничивает только размер загружаемого файла, а post_max_size все данных переданных через post, это может быть не только файл но и строка.
(Добавление)
Telnet пишет:
как же туда помещаются меговые файлы?

примеры?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Telnet
Отправлено: 09 Ноября, 2013 - 17:12:43
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




а как же все таки преобразовать 50М в байты
 
 Top
OrmaJever Модератор
Отправлено: 09 Ноября, 2013 - 17:20:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Эта проверка бесполезная, т.к. если файл больше этого значения то php его не пропустит.
Ну а в качестве примера всё таки подскажу
1) Нужно взять последний символ substr() и посмотреть что это K M или G.
2) В зависимости от буквы умножаем число ( (int)ini_get('upload_max_filesize') ) на 1024 несколько раз. Если это K то один, если M то два если G то три.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Telnet
Отправлено: 09 Ноября, 2013 - 17:46:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $upload_max_filesize = ini_get('upload_max_filesize');
  4. $c = substr("$upload_max_filesize", -1);
  5. switch ($c){
  6.     case 'K':
  7.     $max = (int)$upload_max_filesize*1024;
  8.     break;
  9.     case 'M':
  10.     $max = (int)$upload_max_filesize*1024*1024;
  11.     break;
  12.     case 'G':
  13.     $max = (int)$upload_max_filesize*1024*1024*1024;
  14.     break;
  15. }
  16.  
 
 Top
OrmaJever Модератор
Отправлено: 09 Ноября, 2013 - 17:57:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




В качестве оптимизации альтернативный пример без break Подмигивание
PHP:
скопировать код в буфер обмена
  1. $max = (int)ini_get('upload_max_filesize');
  2. $c = substr($max, -1);
  3. switch ($c){
  4.     case 'G': $max *= 1024;
  5.     case 'M': $max *= 1024;
  6.     case 'K': $max *= 1024;
  7. }


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Telnet
Отправлено: 09 Ноября, 2013 - 18:15:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




Ваш пример работать не будет
так Вы

substr($max, -1);

а $max = (int) те уже просто число.
 
 Top
OrmaJever Модератор
Отправлено: 09 Ноября, 2013 - 18:48:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




я это не увидел, пусть будет так
PHP:
скопировать код в буфер обмена
  1. $max = ini_get('upload_max_filesize');
  2. $c = substr($max, -1);
  3. $max = (int)$max;
  4. ...


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB