【问题标题】:Codeigniter - multiple file upload ->insert into db - having problems!Codeigniter - 多个文件上传 -> 插入数据库 - 有问题!
【发布时间】:2010-06-25 10:19:05
【问题描述】:

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

我关注了这个帖子 -http://codeigniter.com/forums/viewthread/110130/P0/

我几乎可以使用它,但是在将上传的数据添加到我的数据库时遇到了一些问题。

这是我的控制器功能...

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);


    }

提交表单后出现以下错误...

消息:未定义变量:rajar_full_file_path

消息:未定义变量:playlist_full_file_path

消息:未定义变量:map_full_file_path

消息:未定义变量:logo_full_file_path

我是不是很傻,我想不通?

谢谢 丹

【问题讨论】:

    标签: php mysql codeigniter file-upload


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      代替:

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

      尝试:

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

      【讨论】:

        猜你喜欢
        • 2017-09-29
        • 2018-04-24
        • 2017-04-25
        • 2020-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-28
        相关资源
        最近更新 更多