Php Codeigniter-多文件上传->;插入数据库-有问题!

Php Codeigniter-多文件上传->;插入数据库-有问题!,php,mysql,codeigniter,file-upload,Php,Mysql,Codeigniter,File Upload,我正在使用Codeigniter,并试图将多个文件上载到数据库中。 这些文件是独立的字段,而不是一个字段中的多个文件 我跟随了这篇文章- 我几乎有它的工作,但我有一些麻烦添加到我的数据库上传的数据 这是我的控制器功能 function addStation(){ // set common properties $data['title'] = 'Add new station'; $data['action'] = site_url('admin

我正在使用Codeigniter,并试图将多个文件上载到数据库中。 这些文件是独立的字段,而不是一个字段中的多个文件

我跟随了这篇文章-

我几乎有它的工作,但我有一些麻烦添加到我的数据库上传的数据

这是我的控制器功能

function addStation(){
        // set common properties
        $data['title'] = 'Add new station';
        $data['action'] = site_url('admin/station/addStation');
        $data['link_back'] = anchor('admin/station/index/','Back to list of stations',array('class'=>'back'));

        // set validation properties
        $this->_set_fields();
        $this->_set_rules();

        $config['allowed_types'] = 'pdf|xls|doc|docx';
    $config['max_size'] = '1000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';
    $path_to_uploads='./uploads/files/stations';
    $config['upload_path'] = $path_to_uploads;

    // File specific (overrule global and optional)
$config['logo_file']['upload_path']   = './uploads/images/stations';
$config['logo_file']['allowed_types'] = 'gif|jpg|png';


    $this->load->library('upload', $config);
    //add this
    $this->upload->initialize($config);
if (!$this->upload->do_upload(array('rajar_file','playlist_file','map_file', 'logo_file'))){
        $error = $this->upload->display_errors();
        echo "<script>alert($error);</script>";
    }else{
        $data = array('upload_data' => $this->upload->data(array('rajar_file','playlist_file','map_file', 'logo_file')));

        $rajar_file_name = $upload_data['rajar_file']['file_name'];
        $rajar_full_file_path = $path_to_uploads.'/'.$rajar_file_name;

         $playlist_file_name = $upload_data['playlist_file']['file_name'];
        $playlist_full_file_path = $path_to_uploads.'/'.$playlist_file_name;

         $map_file_name = $upload_data['map_file']['file_name'];
        $map_full_file_path = $path_to_uploads.'/'.$map_file_name;

         $logo_file_name = $upload_data['logo_file']['file_name'];
        $logo_full_file_path = $path_to_uploads.'/'.$logo_file_name;
    }

// run validation
        if ($this->validation->run() == FALSE){
            $data['message'] = '';
        }else{
            // save data
            $station = array('name' => $this->input->post('name'),
                            'rajar' => $rajar_full_file_path,
                            'playlist' => $playlist_full_file_path,
                            'map' => $map_full_file_path,
                            'logo' => $logo_full_file_path    );
            $id = $this->stationModel->save($station);

            // set form input name="id"
            $this->validation->id = $id;

            // set user message
            $data['message'] = '<div class="success">add new station success</div>';
        }

          $this->template->set('title', 'Admin - Add New Station!');
      $this->template->load('admin/template', 'admin/stationEdit', $data);


    }
函数addStation(){
//设置公共属性
$data['title']=“添加新电台”;
$data['action']=站点url('admin/station/addStation');
$data['link_back']=anchor('admin/station/index/','back to list of stations',array('class'=>'back');
//设置验证属性
$this->_set_fields();
$this->_set_rules();
$config['allowed_types']='pdf | xls | doc | docx';
$config['max_size']='1000';
$config['max_width']='1024';
$config['max_height']='768';
$path_to_uploads='。/uploads/files/stations';
$config['upload_path']=$path_to_uploads;
//文件特定(否决全局和可选)
$config['logo_file']['upload_path']='./上传/图像/站点';
$config['logo_file']['allowed_types']='gif | jpg | png';
$this->load->library('upload',$config);
//加上这个
$this->upload->initialize($config);
如果(!$this->upload->do_upload(数组('rajar_文件','playlist_文件','map_文件','logo_文件')){
$error=$this->upload->display_errors();
回显“警报($error);”;
}否则{
$data=array('upload_data'=>$this->upload->data(array('rajar_文件','playlist_文件','map_文件','logo_文件'));
$rajar_file_name=$upload_data['rajar_file']['file_name'];
$rajar_full_file_path=$path_to_uploads.'/'.$rajar_file_name;
$playlist_file_name=$upload_data['playlist_file']['file_name'];
$playlist\u full\u file\u path=$path\u to\u uploads.'/'.$playlist\u file\u name;
$map_file_name=$upload_data['map_file']['file_name'];
$map\u full\u file\u path=$path\u to\u uploads.'/'.$map\u file\u name;
$logo_file_name=$upload_data['logo_file']['file_name'];
$logo_full_file_path=$path_to_uploads.'/'.$logo_file_name;
}
//运行验证
如果($this->validation->run()==FALSE){
$data['message']='';
}否则{
//保存数据
$station=array('name'=>$this->input->post('name'),
“rajar”=>$rajar\u完整文件路径,
“playlist”=>$playlist\u完整的\u文件\u路径,
'map'=>$map\u完整文件\u路径,
“logo”=>$logo\u完整文件\u路径);
$id=$this->stationModel->save($station);
//设置表单输入name=“id”
$this->validation->id=$id;
//设置用户消息
$data['message']='addnewstation success';
}
$this->template->set('title','Admin-添加新站点!');
$this->template->load('admin/template','admin/stationEdit',$data);
}
提交表单后,我发现以下错误

消息:未定义变量:rajar_full_file_path

消息:未定义变量:播放列表\u完整\u文件\u路径

消息:未定义变量:映射\u完整\u文件\u路径

消息:未定义变量:徽标\u完整\u文件\u路径

我是不是疯了,我想不出来

谢谢
Dan

我似乎文件上传失败,因此没有设置这些变量。显示上载错误的方法可能不起作用。请尝试将错误发送回视图:

而不是:

    $error = $this->upload->display_errors();
    echo "<script>alert($error);</script>";

似乎您的代码正在输入第一个if语句,然后传递表单验证(因此从不定义变量),然后尝试在第二个else代码块中使用这些变量

    $error = $this->upload->display_errors();
    $data['message'] = $error;