【问题标题】:undefined variable $error in file uploading class codeingiter文件上传类codeigniter中的未定义变量$error
【发布时间】:2014-02-18 07:13:53
【问题描述】:

我正在尝试使用 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);
                 }
}

谢谢。

【问题讨论】:

    标签: codeigniter file-upload


    【解决方案1】:

    在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);
    }
    

    【讨论】:

    • 我试过这个,但是当我这样做时,浏览文件的按钮本身消失了(输入类型='文件'),只有上传按钮(输入类型='上传')显示。
    • 感谢您的帮助:)
    【解决方案2】:

    变量 $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);
    
                  }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      相关资源
      最近更新 更多