Php 在codeigniter中上载图像

Php 在codeigniter中上载图像,php,codeigniter,Php,Codeigniter,我试图在codeigniter中上传图像,但在$this->upload->do_upload('imgname')中遇到了问题。若条件未执行,则只有elese execute and show错误消息为“您未选择要上载的文件”。但是,当删除所有代码中的表单上载时,它会完美地执行 控制器: public function add_news() { $post = $this->input->post(); unset($pos

我试图在codeigniter中上传图像,但在$this->upload->do_upload('imgname')中遇到了问题。若条件未执行,则只有elese execute and show错误消息为“您未选择要上载的文件”。但是,当删除所有代码中的表单上载时,它会完美地执行

控制器:

public function add_news()
    {
            $post = $this->input->post();

            unset($post['submit']);

            $this->load->model('Adminmodel','addNews');
            if(!is_dir('uploads'))
            {
                mkdir(base_url().'uploads',0777,true);
            }
            if(!is_dir('uploads/news'))
            {
                mkdir('uploads/news',0777,true);
            }


            $config = [ 
                        'upload_path'=>'uploads/news',
                        'allowed_types'=>'png|jpg|jpeg|gif',
                        'encrypt_name'=>'0777',
                      ];

            $this->load->library('upload', $config);
            if($this->upload->do_upload('newsimg'))
            {
                $data = $this->upload->data();
                $file_path = base_url().'uploads/news/'.$data["raw_name"].$data["file_ext"];
                $post['newsimg'] = $file_path;
                //$this->revEdit->reg_info($id,$post);
                $post['posted'] = date('d-m-Y');
                $this->addNews->store_news($post);
                $this->session->set_flashdata('newsAlert','Yeh! News Added Successfully.');
                redirect('Admin/news');
            }
            else
            {

                $newsdata = $this->addNews->news_list();
                $upload_error = $this->upload->display_errors();


                $this->load->view('Admin/news',compact('upload_error','newsdata'));
            }}
视图:


您需要使用
form\u open\u multipart
而不是
form\u open
,以便可以在表单中添加
enctype

改变

<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>

致:


您没有使用
enctype='multipart/form data'
试试这个

<?=form_open_multipart('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>

您需要使用多部分/表单数据进行文件上载。 因此,请使用form_open_multipart而不是form_open


回显表单“打开”多部分(“管理/添加新闻”)

函数upload_add($name){$this->load->helper('form');$config['upload_path']=“upload/add_image/”;$config['allowed_types']=“gif | jpg | png”;$config['max_size']=“30000”;$config['max_width']=“102400”;$config['max_height']=“76800”;$this->load->library('upload',$config);$this->初始化($config);如果(!$this->upload->do_upload($name)){$data=array('msg'=>$this->upload->display_errors());}else{$data=array('msg'=>“success”);$databasea['upload_data']=$this->upload->data();$this->load->lib lib('image_');return$databasea['upload_data']['file_name']}return

您的表格中是否有
enctype='multipart/form data'
,谢谢您的Regolith,
<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
<?=form_open_multipart('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>
<?=form_open_multipart('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>