关注the example found here in the Codeigniter Users Guide,我想知道在if( !$this->upload->do_upload() )
方法中调用do_upload()
的内容是什么。
这是代码direclty的粘贴。
class Upload extends CI_Controller {
function __construct() {
parent::__construct();
}
function do_upload() {
$config['upload_path'] = './uploads/';
$this->load->library('upload', $config);
// ** My question starts here **
if ( !$this->upload->do_upload() ) {
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else{
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
}
}
}
正如我所看到的那样,它正在do_upload()
内部检查do_upload()
方法。我错了吗?
原谅我的天真,但我以前从未见过这个......这是一种常见的做法吗?
它做了什么?
答案 0 :(得分:1)
if ( !$this->upload->do_upload() ) {
正在调用CI自己的上传类中的do_upload函数。
文档中的示例不是最好的。
所以它不会再次在你的控制器中调用do_upload,而是在上传类中调用do_upload进行实际的上传。
HTH
答案 1 :(得分:1)
它不调用自身,它调用do_upload
控制器对象的upload
属性上的方法Upload
。这些方法的名称相同,但它们属于不同的对象。 $this->upload
对象似乎是在上一步中加载的'upload'
库(注意:我不知道CI)。