0

我已经查看了上传图片,并且我输入了如下类型的文件:

<input type="file" name="ev_pic" size="20" />

我的控制器喜欢:

if(strlen($_FILES['ev_pic']['name']) > 0) 
        {
        $pic = $this->do_upload('ev_pic');
        }

做上传方法:

public function do_upload($field) {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1000';
        $config['max_width'] = '1024';
        $config['max_height'] = '768';

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

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

            return $error;
        } else {
            /*$data = array('upload_data' => $this->upload->data());
            return $data;*/
            $updata =$this->upload->data();
            $data = $updata['raw_name'].$updata['file_ext'];
            return $data;
        }
    }

在调试它告诉我这个错误:

Severity: Notice

Message: Undefined index: ev_pic

Filename: administrator/events.php

Line Number: 68


Error Number: 1054

Unknown column 'Array' in 'field list'

UPDATE `events` SET `ev_id` = 0, `ev_text` = 0, `ev_pic` = Array

Filename: D:\AppServ\www\d5n\rashaqa2\system\database\DB_driver.php

Line Number: 330

所以我将文件命名为ev_pic,问题出在哪里?

4

2 回答 2

1

在控制器的 __construct 函数中加载上传库,如下所示:

public function __construct(){
  parent::__construct();
  $this->load->library('upload');
}

然后将您的功能更改为以下内容:

public function do_upload($field) {
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1000';
        $config['max_width'] = '1024';
        $config['max_height'] = '768';

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

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

            return $error;
        } else {
            /*$data = array('upload_data' => $this->upload->data());
            return $data;*/
            $updata =$this->upload->data();
            $data = $updata['raw_name'].$updata['file_ext'];
            return $data;
        }
    }
于 2013-08-26T08:32:09.390 回答
0

请检查您的表格

form enctype="multipart/form-data" 是否可用

并更改此行

if (!$this->upload->do_upload($field)) { to if (!$this->upload->do_upload('ev_pic')) {

于 2013-08-25T05:01:58.620 回答