控制器代码:
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我可以解决这个错误,请帮助我。
答案 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);