我想问一下 PHP限制上传大小验证 我已经制作了限制大小上传的代码,但那仍然会出错
我的限制大小是500 Kb 当我将500Kb以上的文件上传到2Mb时,验证工作正常 但是当我的文件大小超过2Mb时,验证无法正常工作
这是我的第一个代码
$maxsize = 500000;
if(($_FILES['myfile']['size'] >= $maxsize) || ($_FILES["myfile"]["size"] == 0)) {
$error = true;
array_push($error_cause, "<li>File size is over limit");
}
这是我的第二个代码
if ($myfile->getSize() > 500000) {
$error = true;
array_push($error_cause, "<li>File size is over limit");
}
为了更清楚,我对这个问题做了一个GIF Here
答案 0 :(得分:1)
算术101:5MB ===&gt; 5 * 1024 * 1024字节
为了保持代码清晰,我经常将单位定义为常量:
<?php
define('KB', 1024);
define('MB', 1048576);
define('GB', 1073741824);
define('TB', 1099511627776);
// Then you can simply do your condition like
ini_set('upload_max_filesize', 5*MB);
if (isset ( $_FILES['uploaded_file'] ) ) {
$file_size = $_FILES['uploaded_file']['size'];
$file_type = $_FILES['uploaded_file']['type'];
if (($file_size > 0.5*MB) && ($file_size < 2*MB)){
$message = 'File too large. File must be more than 500 KB and less than 2 MB.';
echo $message;
}
答案 1 :(得分:0)
简单方法:
$min = 500; //KB
$max = 2000; //KB
if($_FILES['myfile']['size'] < $min * 1024 || $_FILES['myfile']['size'] > $max * 1024){
echo 'error';
}
答案 2 :(得分:-2)
value of upload_max_filesize
in php.ini
is 2MB by default。任何大于此的文件都将被PHP拒绝。
您希望更改php.ini
文件中的值,并确保同时adjust the post_max_size
setting,因为这也适用于上传的文件。
当上传的文件大小超过限制时,$_FILES
数组将为空,您根本无法检测到上传(因此,您不会显示任何错误)
您可以see the actual uploaded file size查看值$_SERVER['CONTENT_LENGTH']
。