Cómo determinar el límite máximo de carga de archivos en php

¿Cómo se puede determinar el tamaño de carga del archivo permitido por la configuración de php con un script php?

Solutions Collecting From Web of "Cómo determinar el límite máximo de carga de archivos en php"

La carga está limitada por tres opciones: upload_max_filesize , post_max_size y memory_limit . Su carga solo se realiza si no se ejecutó una de ellas.

La función ini_get () le proporciona una mano corta del límite y debe convertirse primero. Gracias a AoEmaster por esto.

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); } 

Fuente: http://www.kavoir.com/2010/02/php-get-the-file-uploading-limit-max-file-size-allowed-to-upload.html

Use ini_get para obtener el valor de configuración actual:

 ini_get('upload_max_filesize') 

También puede cambiar ese tamaño en tiempo de ejecución utilizando el archivo .htaccess sin la necesidad de cambiar su archivo 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 

copie ese código y coloque su archivo, luego almacene ese archivo con el archivo de índice y luego ejecute su proyecto, también podrá cargar un archivo de 1GB

para más detalles, lee este artículo

 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); } 

Aquí hay una función única, implementando la idea original de AoEmaster. La función devuelve un entero (cantidad de bytes).

 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 

Si lo desea, puede combinarlo con la siguiente función que representa el resultado como un texto legible para el ser humano.

 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'; } } 

Úselo de esta manera:

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

Un resultado podría ser:

Tamaño máximo de carga permitido: 500 MB

Puede establecer el tamaño máximo de carga de archivos usando ini_set ()

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

o usando el archivo .htaccess

 php_value upload_max_filesize php_value post_max_size