2013-05-24 2 views
0

Хорошо, поэтому я пару раз общался с этим в течение нескольких часов, читая документы и форумы, но не могу понять, почему эта форма загрузки не работает.CodeIgniter Загрузка изображений Не работает и нет ошибок

Вся форма отлично работает, данные сохраняются в БД и все такое. Но я просто добавил вход для загрузки изображений, и он не работает! Я выполнил точный учебник в документах, а также несколько других.

Вот код, который обрабатывает отправки формы ($this->page_m моя модель):

public function edit ($id = NULL) 
{ 
    // Fetch a page or set a new one 
    if ($id) { 
     $this->data['page'] = $this->page_m->get($id); 
     count($this->data['page']) || $this->data['errors'][] = 'page could not be found'; 
    } 
    else { 
     $this->data['page'] = $this->page_m->get_new(); 
    } 

    // Pages for dropdown 
    $this->data['pages_no_parents'] = $this->page_m->get_no_parents();  

    // Process the form 
    if ($this->form_validation->run('page_rules') == TRUE) { 
     $data = $this->page_m->array_from_post(array(
      'title', 
      'slug', 
      'body', 
      'template', 
      'parent_id'   
     ));      

     if(!empty($_FILES['userfile'])) { 
      $this->do_upload(); 
     } 

     $this->page_m->save($data, $id); 
     redirect('admin/page');   
    }   

    // Load the view 
    $this->data['subview'] = 'admin/page/edit'; 
    $this->load->view('admin/_layout_main', $this->data); 
} 

и вот код, который обрабатывает загрузку фотографий, которая называется сразу после $this->form_validation->run() проверки:

//upload a slider photo 
public function do_upload() {     

    $config = array(
     'allowed_types' => 'jpg|jpeg|gif|png', 
     'upload_path' => site_url('uploads/') 
    );  


    $this->load->library('upload'); 
    $this->upload->initialize($config); 

    $field_name = "userfile"; 

    if (! $this->upload->do_upload($field_name)) { 
      $this->data['error'] = array('error' => $this->upload->display_errors()); 
      $this->data['subview'] = 'admin/page/edit'; 
      $this->load->view('admin/_layout_main', $this->data); 
    } else { 
     return true; 
    }         
} 

Я специально создал этот сценарий загрузки как можно более простой и простой для целей отладки, но все же я не имел успеха в том, чтобы загрузить эту форму.

После того, как я получаю загрузку, мне нужно сохранить имя изображения в моей таблице базы данных, но это, кроме того, прямо сейчас. Мне просто нужно это загрузить.

решаемые - INVALID ЗАГРУЗИТЬ КАТАЛОГ

+0

ли вы добавить 'ENCTYPE =" многослойную/форм-данных «формироваться? –

+0

Да, я открываю форму с помощью 'echo form_open_multipart()', которая является функцией codeigniter, чтобы открыть многостраничную форму –

+0

, имеет ли ваш каталог загрузки правильные разрешения? – Jeemusu

ответ

1

отлаживать скрипт, который вы должны попробовать и эхо из значения, возвращаемого $this->upload->display_errors();

Попробуйте изменить do_upload() методы последний если {} еще {} о к следующему:

if (! $this->upload->do_upload($field_name)) { 

     // return the error message and kill the script 
     echo $this->upload->display_errors(); die(); 

     $this->data['error'] = array('error' => $this->upload->display_errors()); 
     $this->data['subview'] = 'admin/page/edit'; 
     $this->load->view('admin/_layout_main', $this->data); 
} else { 
    return true; 
} 

Надеюсь, это поможет вам выяснить причину проблемы.

0

та же проблема с моим, я решаю, что путем модернизации CodeIgniter,

моя старая версия 3.1.2, то я просто обновление до CI-3.1.3,

просто заменить системную папку в корневом каталоге папка,

после этого, проблема решительность в живом сервере,

я надеюсь, что я предлагаю полезно использовать

Смежные вопросы