计算上传文件的数量

Fre*_*sen 3 php codeigniter file-upload

我正在研究我的CodeIgniter项目,到目前为止工作得非常好.

但是,我需要一些方法来计算上传文件的数量,因为我想在某些情况下限制它(但不是全部).

我怎样才能做到这一点?我试过count($_FILES)但是这没有给我任何可用的东西.

我也尝试过其他一些东西,但都没有给我提供我需要的信息.

上传表单是一个多文件上传,我使用这个库来处理多个上传.

没有计数的上传功能如下所示:

function do_upload()
{
    $setid = $this->input->post('imageset');
        $this->load->library('upload');
        $this->load->library('image_lib');
        $this->upload->initialize(array(
                "upload_path"   => "./photos/",
                "allowed_types" => "jpg|jpeg|png|gif",
                "encrypt_name" => TRUE
        ));
        try {
            $this->upload->do_multi_upload("files");
            $images = $this->upload->get_multi_upload_data();
            $config = array(
                    'image_library'  => 'gd2',
                    'create_thumb'   => TRUE,
                    'maintain_ratio' => TRUE,
                    'width'          => '145',
                    'height'         => '145'
            );
            foreach ($images as $image)
            {
                $config['source_image'] = $image['full_path'];
                $this->image_lib->initialize($config);
                $this->image_lib->resize();
                $this->manage_model->insertimage($image['file_name'],$image['orig_name'],$image['file_size'],$image['file_type'],$setid);
            }
            $this->session->set_flashdata('success','Billederne er nu blevet uploadet.');
        } catch (Exception $e) {
            $this->session->set_flashdata('error', $e);
        }
        redirect('manage/images','refresh');
}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助.

jer*_*oen 11

您可以使用以下方法检查$_FILES变量中的项目数:

$total = count($_FILES['your_variable_array_in_html']['tmp_name']);
Run Code Online (Sandbox Code Playgroud)

你需要在以下之前做到这一点:

$this->upload->do_multi_upload("files");
Run Code Online (Sandbox Code Playgroud)

线.

正如你已经注意到了,$_FILES只包含一个变量-数组-包含不同部分的阵列,tmp_name,name,error,等检查手册,了解更多详情.

  • 谢谢!正是我在寻找什么. (2认同)