繁体   English   中英

Codeigniter 2.2:文件上传

[英]Codeigniter 2.2: File Upload

我在CodeIgniter 2.2中处理文件上载时遇到问题。 我可以创建其特定的文件夹目标,但是无法上传所选的文件。

这是我的控制器

function create_report()
{
    if($this->session->userdata('logged_in'))
    {

            $this->create_model->set_report();


            $this->session->set_flashdata('message', 'Success! You created a Report!');
            #$redirect($_SERVER['HTTP_REFERER'], 'refresh');


     }
   else
   {
            $this->session->set_flashdata('message', 'Oops! You have to Login');
     //If no session, redirect to login page
            redirect('login', 'refresh');
   }      

}

这是我的模特儿

function set_report()
    {
    if($this->session->userdata('logged_in'))
        {       
                $session_data = $this->session->userdata('logged_in');

                if($_FILES['userfile']['name'] != NULL)
                {       
                        $main_dir = './FILES/'.$this->input->post('patientname').'/';
                        // Check if User Folder is already created. Create New if none exist
                        if(!is_dir($main_dir)){
                        mkdir($main_dir, 0777);
                        }

                        $target_dir = './FILES/'.$this->input->post('patientname').'/'.$this->input->post('session_id').'/';
                        // Check if Session Folder is already created. Create New if none exist
                        if(!is_dir($target_dir)) {
                        mkdir($target_dir, 0777);
                        }

                        $config['upload_path'] = './FILES/'.$this->input->post('patientname').'/'.$this->input->post('session_id').'/';
                        $config['allowed_types'] = 'gif|jpg|png|docx|xlsx|doc|pdf|csv|zip|rar|7zip|ppt|pptx';


                        $this->load->library('upload', $config);



                        $data2 = array('upload_data' => $this->upload->data());



                }

                $data = array(                      
                    'session_id' => $this->input->post('session_id'),   
                    'report_creator' => $session_data['username'],
                    'report_patientname' => $this->input->post('patientname'),
                    'report_patientid' => $this->input->post('patientid'),
                    'report_subject' => $this->input->post('subject'),                      
                    'report_description' => $this->input->post('description'),
                    'report_time' => $this->input->post('date'),                        
                    'report_date' => $this->input->post('time')                     

                );

                return $this->db->insert('session_reports', $data);

    }


}

我一直在试图解决这个问题,但我还没有找出关键。 我希望有人可以帮助我。

我相信,我未能初始化配置。

$this->upload->initialize($config);     

那解决了我的问题。 谢谢大家

删除这个

$data2 = array('upload_data' => $this->upload->data());

并替换成那个

if (!$this->upload->do_upload())
{
    $error = array('error' => $this->upload->display_errors());

    $this->load->view('upload_form', $error);
}
else
{
    $data = array('upload_data' => $this->upload->data());

    $this->load->view('upload_success', $data);
}

加载库

$this->load->library('upload', $config);

或者,您可以通过调用initialize()方法来设置首选项。 如果您自动加载该类很有用:

$this->upload->initialize($config);

Codeigniter文件上传

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM