Как определить максимальное ограничение загрузки файлов в php

Как определить размер загрузки файла, разрешенный параметрами php, с помощью php-скрипта?

Solutions Collecting From Web of "Как определить максимальное ограничение загрузки файлов в php"

Загрузка ограничена тремя параметрами: upload_max_filesize , post_max_size и memory_limit . Ваша загрузка выполняется только в том случае, если она не выводит один из них.

Функция ini_get () предоставляет вам короткую руку ограничения и должна быть преобразована в первую очередь. Thx для AoEmaster для этого.

function return_bytes($val) { $val = trim($val); $last = strtolower($val[strlen($val)-1]); switch($last) { case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } function max_file_upload_in_bytes() { //select maximum upload size $max_upload = return_bytes(ini_get('upload_max_filesize')); //select post limit $max_post = return_bytes(ini_get('post_max_size')); //select memory limit $memory_limit = return_bytes(ini_get('memory_limit')); // return the smallest of them, this defines the real limit return min($max_upload, $max_post, $memory_limit); } 

Источник: http://www.kavoir.com/2010/02/php-get-the-file-uploading-limit-max-file-size-allowed-to-upload.html

Используйте ini_get для получения текущего значения конфигурации:

 ini_get('upload_max_filesize') 

Вы также можете изменить этот размер во время выполнения с помощью файла .htaccess без необходимости изменения файла php.ini

 php_value upload_max_filesize 1224M php_value post_max_size 1224M php_value max_execution_time 3000 php_value max_input_time 3000 

скопируйте этот код и поместите свой файл, затем сохраните этот файл с индексным файлом, затем запустите свой проект, который вы также можете загрузить 1GB-файл

более подробно прочитайте эту статью

 function return_bytes($val) { $val = trim($val); $last = strtolower($val[strlen($val)-1]); switch($last) { case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } function get_upload_max_filesize() { $max_upload = return_bytes(ini_get('upload_max_filesize')); $max_post = return_bytes(ini_get('post_max_size')); return min($max_upload, $max_post, $memory_limit); } 

Вот одна функция, реализующая оригинальную идею от AoEmaster. Функция возвращает целое число (количество байтов).

 function _GetMaxAllowedUploadSize(){ $Sizes = array(); $Sizes[] = ini_get('upload_max_filesize'); $Sizes[] = ini_get('post_max_size'); $Sizes[] = ini_get('memory_limit'); for($x=0;$x<count($Sizes);$x++){ $Last = strtolower($Sizes[$x][strlen($Sizes[$x])-1]); if($Last == 'k'){ $Sizes[$x] *= 1024; } elseif($Last == 'm'){ $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; } elseif($Last == 'g'){ $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; } elseif($Last == 't'){ $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; $Sizes[$x] *= 1024; } } return min($Sizes); } 

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

 function _Byte2Size($bytes,$RoundLength=1) { $kb = 1024; // Kilobyte $mb = 1024 * $kb; // Megabyte $gb = 1024 * $mb; // Gigabyte $tb = 1024 * $gb; // Terabyte if($bytes < $kb) { if(!$bytes){ $bytes = '0'; } return (($bytes + 1)-1).' B'; } else if($bytes < $mb) { return round($bytes/$kb,$RoundLength).' KB'; } else if($bytes < $gb) { return round($bytes/$mb,$RoundLength).' MB'; } else if($bytes < $tb) { return round($bytes/$gb,$RoundLength).' GB'; } else { return round($bytes/$tb,$RoundLength).' TB'; } } 

Используйте его так:

 echo 'Max allowed upload size: '._Byte2Size(_GetMaxAllowedUploadSize()); 

Результатом может быть:

Максимальный допустимый размер загрузки: 500 МБ

Вы можете установить максимальный размер загрузки файлов, используя ini_set ()

  ini_set('post_max_size', '64M'); ini_set('upload_max_filesize', '64M'); 

или используя файл .htaccess

 php_value upload_max_filesize php_value post_max_size