codeigniter - 如果图像字段为空,上传图像显示错误

问题描述 投票:0回答:1

我的控制器中有此功能。如果我添加图像,它工作正常,但如果我不上传图像,则会出现以下错误:

消息:未定义索引:categoryphoto 文件名:controllers/faqcategories.php 线数:90

这是我的代码

 public function addNewFaqCategory() 
    {    
        $currentUser = $this->isLoggedIn();
        $this->load->library('upload');
        $this->load->library('form_validation');
        $this->form_validation->set_rules('categoryname', 'Category Name', 'trim|required|xss_clean');
        $this->form_validation->set_rules('categoryname_en', 'Category Name', '');
        $this->form_validation->set_rules('visible', 'Visible', 'trim|required|xss_clean');
        $this->form_validation->set_rules('sorder', 'Sort Order', 'trim|numeric|xss_clean');

        if ($this->form_validation->run() == FALSE) 
        {
            $this->displayAddFaqCategoryForm();
        } else {

            $insertWhat = array(
                                'categoryname'    => $this->input->post('categoryname'),
                                'categoryname_en' => $this->input->post('categoryname_en'),
                                'parentid'        => $this->input->post('parentid'),
                                'description'     => $this->input->post('description'),
                                'description_en'  => $this->input->post('description_en'),
                                'metatags'        => $this->input->post('metatags'),
                                'metatags_en'     => $this->input->post('metatags_en'),
                                'sorder'          => $this->input->post('sorder'),
                                'visible'         => $this->input->post('visible'),
                                'categoryphoto'   => ($_FILES['categoryphoto']['name']) // line 90, error is here....

                               );

            if($insertWhat['categoryphoto'] !="")
            {
                $insertWhat['categoryphoto'] = str_replace(' ', '_',$insertWhat['categoryphoto']);
                $now = date('Y-m-d-His');
                $insertWhat['categoryphoto'] = $now.$insertWhat['categoryphoto'];
        $config['upload_path'] = 'backOffice/backOfficeImages';
        $config['allowed_types'] = 'gif|jpg|jpeg|bmp|png';
        $config['max_size'] = '2048';
        $config['max_width']  = '1024';
        $config['max_height']  = '768';
                $config['file_name'] = $insertWhat['categoryphoto'];
                $this->load->library('upload', $config);
                $this->upload->initialize($config);   
            }
            $this->upload->do_upload('categoryphoto');
            $data = array('upload_data' => $this->upload->data('categoryphoto'));
            $this->load->model('faqcategoriesmodel');
            $this->faqcategoriesmodel->save($insertWhat);
            $this->displayAllFaqCategories();
        }
    } // end of function addNewFaqCategory

第 90 行 = 'categoryphoto' => ($_FILES['categoryphoto']['name'])

任何帮助将不胜感激。

佐兰

php codeigniter
1个回答
0
投票

您在检查上传之前创建该数组,因此如果没有上传照片,则会出错。您应该在检查/上传后移动数组创建

作为代码的单行修复,请使用它代替有问题的行:

'categoryphoto'   => isset($_FILES['categoryphoto']['name'])? $_FILES['categoryphoto']['name'] : '' 
© www.soinside.com 2019 - 2024. All rights reserved.