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

标签 php mysql codeigniter file-upload

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

我关注了这篇文章 - http://codeigniter.com/forums/viewthread/110130/P0/

我几乎可以正常工作了,但是我在将上传的数据添加到我的数据库时遇到了一些问题。

这是我的 Controller 函数...

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


    }

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

消息: undefined variable :rajar_full_file_path

消息: undefined variable :playlist_full_file_path

消息: undefined variable :map_full_file_path

消息: undefined variable :logo_full_file_path

我是不是太傻了,我想不通?

谢谢 丹

最佳答案

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

关于php - Codeigniter - 多个文件上传 -> 插入数据库 - 有问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117201/

相关文章:

mysql - mysql创建过程时出错

php - CodeIgniter - 如何从 ajax 方法返回值?

php bool 运算导致500错误

php - 从表中选择不在 php 数组查询中不起作用

php - PayPal 付款状态为 pending?

PHP MySQL 表单分页

PHP 准备好的语句。 $stmt, fetch_array()

mysql - 对于不同基数列的复合索引,顺序重要吗?

php - 在 codeigniter 中取消设置一些 session 数据

php - 使用过滤器(或 jquery)删除 Wordpress 图像周围的 anchor 元素