count函数默认显示为1

时间:2016-08-16 08:59:06

标签: php file count drupal-7

我正在使用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.

2 个答案:

答案 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']);
}