¿Cómo se puede determinar el tamaño de carga del archivo permitido por la configuración de php con un script php?Cómo determinar el límite máximo de carga de archivos en php
Respuesta
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 0 ini_get() le proporciona una mano corta del límite y se debe convertir primero. Thx a AoEmaster para 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
Uso 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 el 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
copiar el código y poner su archivo, luego almacenar ese archivo con el archivo de índice y luego ejecutar su proyecto también es capaz de cargar archivos de 1GB
para más detalles read this article
Esta no es una respuesta a la pregunta ... –
Puede establecer el tamaño máximo del archivo de carga usando ini_set()
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
o utilizando el archivo .htaccess
php_value upload_max_filesize
php_value post_max_size
Algunas de estas configuraciones se pueden cambiar dentro de un script .php usando ini_set, y otras no. Consulte http://php.net/manual/en/ini.list.php para obtener la lista completa. Por ejemplo, post_max_size dice: "PHP_INI_PERDIR \t PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible desde PHP 4.0.3." Con el fin de descifrar lo que significa "PHP_INI_PERDIR", ver http://php.net/manual/en/configuration.changes.modes.php PHP_INI_PERDIR \t entrada se puede fijar en php.ini, .htaccess, httpd. conf o .user.ini (desde PHP 5.3) Así que no se puede establecer el valor de pos_max_size en un script PHP a través de ini_set(). –
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);
}
Un poco más de explicación además de solo un bloque de código sería mucho más útil. –
Lo siento, soy francés, no puedo explicarlo en un buen inglés. Solo quiero ayudar y compartir mi solución. – AoEmaster
Alternativa muy similar: http://stackoverflow.com/a/22500394/1227297 –
Aquí hay una sola función, la aplicación de 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<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);
}
Si lo desea, se puede combinar con la siguiente función que hace que la salida como un texto legible por humanos.
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';
}
}
usarlo de esta manera:
echo 'Max allowed upload size: '._Byte2Size(_GetMaxAllowedUploadSize());
Un resultado podría ser:
Max permitió tamaño de subida: 500 MB
- 1. (nodo) ¿Límite máximo de archivos afectados?
- 2. PHP - Tamaño máximo de carga total?
- 3. Límite máximo de hilo?
- 4. Tamaño máximo de la imagen en la carga de archivos
- 5. Límite de tamaño de carga de archivos de rieles
- 6. Script PHP de carga de archivos PHP
- 7. Tamaño máximo de carga de archivos de Juego marco 2.0
- 8. número máximo de carga de archivos permitidos se ha superado
- 9. Validación de archivos de carga de PHP
- 10. Límite máximo de memoria de aplicaciones en el iPad?
- 11. windows server 2008 IIS 7.5 límite máximo de aceptación de archivos
- 12. ¿Descarga de archivos en php, problema de límite de memoria?
- 13. Guía rápida de carga de archivos php
- 14. Tamaño máximo de la carga útil REST?
- 15. Servidores de aplicaciones Límite máximo de memoria
- 16. Número de archivo máximo puede php subir al mismo tiempo
- 17. ¿Cómo puedo determinar el valor máximo de un pid_t?
- 18. Aumente el límite de tamaño de carga de archivos en iis6
- 19. Carga de archivos PHP usando jquery post
- 20. javascript object límite de tamaño máximo
- 21. ¿Cómo eliminar el límite de tiempo de CURL en PHP?
- 22. ¿Cargar el tamaño máximo en PHP?
- 23. Evite el límite de tiempo de ejecución de PHP
- 24. Cómo manejar la carga de archivos múltiples usando PHP
- 25. límite de memoria PHP
- 26. ¿Cómo cambio el límite de archivos abiertos en Linux?
- 27. PHP: ¿cómo determinar si el navegador admite javascript en PHP?
- 28. Problemas de carga de archivos PHP al cargar archivos "más grandes" (más de 2 MB)
- 29. ¿Cómo limitar el tamaño del archivo de tipo de carga de archivos en PHP?
- 30. Carga de archivos en el módulo joomla
Cabe señalar que esta no da cuenta de la taquigrafía notación en archivos ini, por lo que si tiene un límite de "64M" se analizará como 64. Es mejor convertir todo en bytes antes de comparar. –
Estoy de acuerdo con Brady, la mayoría de los archivos ini que veo ahora usan notación abreviada. –
Consulte esta conversión http://stackoverflow.com/questions/13076480/php-get-actual-maximum-upload-size – Shane