2014-02-18 3 views
2

Я пытаюсь использовать класс загрузки Codeigniter для загрузки PDF-файлов в папку, которая работает нормально. Однако переменная ошибки отображается как неопределенная, и из-за этого я не мог видеть ошибку если iam загружает неправильный файл. Пожалуйста, предложите.

Вот мой взгляд,

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

Спасибо.

ответ

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); 
} 
+0

Я пробовал это, но когда я делаю это кнопка для просмотра файлов сам исчезает (входной тип = «файл») и только кнопку загрузки (тип ввода = «Загрузка») показывает. –

+0

странная проблема. Проверьте код просмотра. –

+0

Спасибо за вашу помощь :) –

0

переменная $ ошибка является локальным, и вы не передавая эту переменную на ваш взгляд. Измените код, чтобы нравится этот

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

       }