我正在使用php的count函数来计算文件上传文件时选择的文件数量。根据计算,我想应用一些条件。当没有选择文件时,我检查了计数值,它显示为1,当我选择单个文件时它显示1,选择两个文件后它将显示为2.我不知道这里出了什么问题。请找下面的代码,我写的。谢谢你的任何建议..
$form['upload_fieldset']['file'] = array(
'#type' => 'file',
'#title' => 'Choose a File',
'#name' => 'files[]',
'#attributes' => array('multiple' => 'multiple'),
);
function xxx_submit_file_upload($form, &$form_state) {
$num_files = count($_FILES['files']['name']);
echo '<pre>';print_r($num_files);exit;//Here I am getting count as 1. if no files were chosen also.
答案 0 :(得分:1)
下面的代码对我有用。你可以尝试一下。
$num_files = 0;
foreach ($_FILES['files']['name'] as $name) {
if (!empty($name))
$num_files++;
}
if( $num_files == 0 ){
echo "No file selected";
}else{
echo $num_files." files uploaded.";
}
答案 1 :(得分:0)
即使您没有文件,$_FILES['files']['name']
也设置为''
,因此它会计为1。
您可以检查文件是否已上传,然后计算:
$upload_error = $_FILES['files']['error'][0];
if ($upload_error === UPLOAD_ERR_NO_FILE) {
$num_files = 0;
} else {
$num_files = count($_FILES['files']['name']);
}