文件上传类编码中的未定义变量$error



我正在尝试使用Codeigniter上传类将pdf上传到工作正常的文件夹中。但是,错误变量显示为未定义,因此,如果我上传了错误的文件,我看不到错误。请指教。

这是我的观点,

             <?php echo $error;?>
             <?php echo form_open_multipart('admin/admin_elements/do_upload_pdf');?>
             <input type="file" name="pdf" class="btn" />
             <br /><br />
             <input type="submit"  class="btn btn-info" value="upload" />
             <?php echo form_close(); ?>

和我的控制器功能,

      function add_pdf(){
                  $data['main_content'] ='admin/elements/add_pdf';
                  $this->load->view('includes/template', $data);          
      }
      function do_upload_pdf(){
                  $config['upload_path'] = './uploads/';
                  $config['allowed_types'] = 'pdf';
                  $config['max_size'] = '10000';
                  $this->load->library('upload', $config);
                  if ( ! $this->upload->do_upload('pdf'))
                  {
                     $error = array('error' => $this->upload->display_errors());
                     $data['main_content'] ='admin/elements/add_pdf';
                     $this->load->view('includes/template', $data);
                  }
                  else
                  {
                     $chapter_id=$this->session->userdata('chapter_id');
                     redirect("/admin/elements/".$chapter_id);
                 }
}

谢谢。

function add_pdf(){中添加此行

$data["error"] = "";

并在do_upload_pdf()

if ( ! $this->upload->do_upload('pdf'))
{
 $data['error'] = $this->upload->display_errors();
 $data['main_content'] ='admin/elements/add_pdf'; 
 $this->load->view('includes/template', $data);
}

>变量$error是局部的,并且您没有将此变量传递给您的视图。将代码更改为如下所示

if ( ! $this->upload->do_upload('pdf'))
              {
                 $data['error'] = array('error' => $this->upload->display_errors());
                //  ^^^^^^^^^^
                 $data['main_content'] ='admin/elements/add_pdf';
                 $this->load->view('includes/template', $data);
              }

最新更新