我使用PHP将多个文件上传到数据库。因此,当我检查文件扩展名时,即使文件扩展名正确,它也始终显示我给出的错误消息:
不允许使用文件类型,我们只接受.jpg,.png和.gif扩展名 文件
以下是验证:
$total = count($_FILES['client_doc']['name']);
for($i=0; $i<$total; $i++) {
$file_name = htmlspecialchars($_FILES['client_doc']['name'][$i]);
$file_tmp = htmlspecialchars($_FILES['client_doc']['tmp_name'][$i]);
$file_size = htmlspecialchars($_FILES['client_doc']['size'][$i]);
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$allowed_type = array('jpg', 'jpeg', 'gif', 'png');
}
if(!empty($file_name)) {
if(!in_array($file_ext, $allowed_type)) {
$msg[] = 'File type is not allowed, We accept only .jpg, .png and .gif extension file';
$msg['error'] = true;
}elseif($file_size > 2097152) { // only 2 mb size is allowed
$msg[] = 'Uploaded file name must be less than 2MB';
$msg['error'] = true;
}
}
答案 0 :(得分:0)
我通过提供$file_name
变量test.png
值来测试您的代码,它运行正常。您确定文件格式正常吗?在echo $file_name
循环结束时尝试for
,检查是否有任何输出。
另一个提示:
for
循环中。$allowed_type
是常量,因此您无需在循环内覆盖它。