是否需要根据php.ini和手动检查文件大小?
因此,在用PHP上传文件时,我目前正在对照PHP.ini文件检查上传大小是否存在错误:是否需要根据php.ini和手动检查文件大小?,php,apache,file-upload,upload,Php,Apache,File Upload,Upload,因此,在用PHP上传文件时,我目前正在对照PHP.ini文件检查上传大小是否存在错误: switch ($_FILES['file']['error']) { case UPLOAD_ERR_OK: break; case UPLOAD_ERR_NO_FILE: throw new RuntimeException('No file sent.'); case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR
switch ($_FILES['file']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new RuntimeException('No file sent.');
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
throw new RuntimeException('Exceeded filesize limit.');
default:
throw new RuntimeException('Unknown errors.');
}
然后手动检查它们:
$max_size = "10490000";
if ($_FILES['file']['size'] > $max_size) {
throw new RuntimeException('Exceeded filesize limit.');
}
这第二步有必要吗?或者仅仅检查错误就足够了
或者,如果有必要,我可以安全地在第二次检查时执行以下操作:
$max_size = (int)(ini_get('upload_max_filesize'));
(1) 第二步是不必要的,但您必须将上传错误信息大小
案例与上传错误信息大小
案例分开,因为它们的含义与手册中的不同
(2) php.ini文件中的条目upload\u max\u filesize
的值使用以下符号编写:
XY:其中X是整数,Y是单位,Y可以是G(千兆字节),M(兆字节)…等等,请阅读手册以了解更多说明 ,因此使用
(int)(ini_get('upload_max_filesize')代码>并非总是安全的,需要额外处理