如何在php脚本中确定php设置所允许的文件上传大小?
qhhrdooz1#
上载受三个选项的限制:upload_max_filesize、post_max_size和memory_limit。仅当不超过其中一个值时,您的上载才完成。
**ini_get()**函数为您提供了一个限制的短手,应该首先将其转换为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
7vhp5slm2#
使用ini_get获取当前配置值:
ini_get
ini_get('upload_max_filesize')
xe55xuns3#
您还可以在运行时使用.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的文件更多详情read this article
wecizke34#
这里有一个函数,实现了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());
结果可能是:
djp7away5#
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); }
fdbelqdn6#
您可以使用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
6条答案
按热度按时间qhhrdooz1#
上载受三个选项的限制:upload_max_filesize、post_max_size和memory_limit。仅当不超过其中一个值时,您的上载才完成。
**ini_get()**函数为您提供了一个限制的短手,应该首先将其转换为AoEmaster。
来源:http://www.kavoir.com/2010/02/php-get-the-file-uploading-limit-max-file-size-allowed-to-upload.html
7vhp5slm2#
使用
ini_get
获取当前配置值:xe55xuns3#
您还可以在运行时使用.htaccess文件更改该大小,而无需更改php.ini文件
复制该代码,并把你的文件,然后存储该文件与索引文件,然后你运行你的项目,你也能够上传1GB的文件
更多详情read this article
wecizke34#
这里有一个函数,实现了AoEmaster最初的想法。这个函数返回整数(字节数)。
如果需要,可以将其与以下函数结合使用,该函数将输出呈现为人类可读的文本。
使用方法如下:
结果可能是:
djp7away5#
fdbelqdn6#
您可以使用ini_set()设置最大文件上载大小
或使用.htaccess文件