Codeigniter文件上传代码无效

时间:2017-04-02 12:44:14

标签: php codeigniter

控制器代码:

if(isset($_FILES['imageupload']) && $_FILES['imageupload']['size'] > 0){
    echo 'inside if';
    if ( ! $this->upload->do_upload('imageupload'))
    {
    echo 'inside if';
    $error = array('error' => $this->upload->display_errors());
    }
    else
    {
    echo 'inside else';
    $upload_data = $this->upload->data(); 
    $file_name[] = $upload_data['file_name'];
    } 
}

查看代码:

<input type="file" class="default" id="imageupload" name="imageupload">

错误:在非对象上调用成员函数do_upload()

Hoow我可以解决这个错误,请帮助我。

3 个答案:

答案 0 :(得分:0)

您是否在控制器上加载了库上传?我想您的代码问题是缺少此代码<div data-frames="[ { src: 'artwork-96.png', sizes: '96x96', type: 'image/png' }, { src: 'artwork-128.png', sizes: '128x128', type: 'image/png' }, { src: 'artwork-192.png', sizes: '192x192', type: 'image/png' }, { src: 'artwork-256.png', sizes: '256x256', type: 'image/png' }, { src: 'artwork-384.png', sizes: '384x384', type: 'image/png' }, { src: 'artwork-512.png', sizes: '512x512', type: 'image/png' } ]"></div> 尝试检查此文档,希望它能为您提供帮助。 https://www.codeigniter.com/userguide3/libraries/file_uploading.html

答案 1 :(得分:0)

该错误表示未加载upload库。您需要在某处加载上载库,并且在控制器的构造函数中是一种可能的选择。将以下内容添加到控制器代码中。

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

使用$autoload['libraries']项目加载此库的另一个位置是 application / config / autoload.php

$autoload['libraries'] = array('upload');

可以同时加载其他库。有关更多详细信息,请参阅autoload.php中的注释。

答案 2 :(得分:0)

在使用config

调用do_upload之前添加上传库
$config['upload_path'] = '/path/';
$config['allowed_types'] = '*';
$config['file_name'] = 'file_name';
$config['overwrite'] = TRUE|FALSE;

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