2016-02-13 3 views
2
public function add_software() 
{ 
    $this->load->library('form_validation'); 

    $this->form_validation->set_error_delimiters('<div class="error-form">', 
'</div>'); 
    $this->form_validation->set_rules('name', 'Name', 
'required|min_length[4]|max_length[25]'); 
    $this->form_validation->set_rules('desc', 'Description', 'required'); 
    $this->form_validation->set_rules('licence', 'Licence.', 'required'); 
    $this->form_validation->set_rules('platform', 'Platform', 'required'); 
    $this->form_validation->set_rules('developers', 'Developer',  
'required'); 
    $this->form_validation->set_rules('link', 'Developer Website', 
'required'); 
    $this->form_validation->set_rules('cat', 'Category', 'required'); 
    $this->form_validation->set_rules('logo', 'Software Logo', 'required'); 

    if ($this->form_validation->run() == FALSE) { 
    $this->load->view('admin/includes/header'); 
    $this->load->view('admin/add_software'); 
    $this->load->view('admin/includes/footer'); 
    } else { 
    //Setting values for tabel columns 
    $data['name']  = $this->input->post('name'); 
    $data['description'] = $this->input->post('desc'); 
    $data['licence']  = $this->input->post('licence'); 
    $data['platform'] = $this->input->post('platform'); 
    $data['developers'] = $this->input->post('developers'); 
    $data['link']  = $this->input->post('link'); 
    $data['category'] = $this->input->post('cat'); 
    $data['logo'] = $this->input->post('logo'); 

    ///////////////////////////////// 
    //set preferences 

    $config = array(
    'upload_path' => '' .base_url(). '/assets/img/logo/', 
    'allowed_types' => "gif|jpg|png|jpeg|pdf", 
    'overwrite' => TRUE, 
    'max_size' => "4096000", 
    'max_height' => "1024", 
    'max_width' => "1024" 
    ); 
      //load upload class library 

    $this->load->library('upload', $config); 
      $this->upload->data(); 
      $this->upload->do_upload(); 
    ///////////////////////////////// 
    //Transfering data to Model 
    $this->insert_model->form_insert($data); 
    $data['message'] = 'Data Inserted Successfully'; 
    //Loading View 
    redirect('admin/view_softwares', 'refresh'); 
    } 
} 

Это моя функция управления кодом. Используя эту функцию, я могу добавить данные в базу данных. Но я не могу загрузить изображение. Даже upload_files включен в php.ini. Я пытался решить эту проблему весь день, но все напрасно. я не использовал enctype в моей HTML форме, потому что, когда я использую enctype, я получаю ошибку ниже:Загрузить изображение с помощью codeigniter controller

undefined Index filename 
+0

попробовать 'upload_path' => './assets/img/logo/', –

+0

Вы должны использовать 'ENCTYPE =" многочастному/form-data "для загрузки файла и использования ** $ image_info = $ this-> upload-> do_upload (" name_of_input_type_file "); ** –

ответ

1

Друг я Виль дать код, который я сделал для загрузки image.This, безусловно, работает. Вы можете обратиться this.Any сомнение, пожалуйста спросите, я Виль помочь вам

public function uploadImage() { 
     $this->load->helper(array('form', 'url')); 
     $config['upload_path'] = 'assets/images/b2bcategory'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '1000'; 
     $config['max_width'] = '2024'; 
     $config['max_height'] = '1768'; 
     $config['width'] = 75; 
     $config['height'] = 50; 
     if (isset($_FILES['catimage']['name'])) { 
      $filename = "-" . $_FILES['catimage']['name']; 
      $config['file_name'] = substr(md5(time()), 0, 28) . $filename; 
     } 
     $config['overwrite'] = TRUE; 
     $config['remove_spaces'] = TRUE; 
     $field_name = "catimage"; 
     $this->load->library('upload', $config); 
     if ($this->input->post('selsub')) { 
      if (!$this->upload->do_upload('catimage')) { 
       //no file uploaded or failed upload 
       $error = array('error' => $this->upload->display_errors()); 
      } else { 
       $dat = array('upload_data' => $this->upload->data()); 
       $this->resize($dat['upload_data']['full_path'],   $dat['upload_data']['file_name']); 
      } 
      $ip = $_SERVER['REMOTE_ADDR']; 
      if (empty($dat['upload_data']['file_name'])) { 
       $catimage = ''; 
      } else { 
       $catimage = $dat['upload_data']['file_name']; 
      } 
      $data = array(   
       'ctg_image' => $catimage, 
       'ctg_dated' => time() 
      ); 
      $this->b2bcategory_model->form_insert($data); 

     } 
    } 
+0

спасибо. это сработало –

+0

Добро пожаловать. Всегда рады помочь :) – Angel

0

Ваш путь является неправильным.

'upload_path' => '' .base_url(). '/assets/img/logo/', 

Note: Make sure your upload path "assets folder" is in the main directory out side of application folder. You also may need to set folder permissions.

Попробуйте

'upload_path' => FCPATH . 'assets/img/logo/' 

или просто

'upload_path' => './assets/img/logo/' 

Чтобы получить доступ к информации о файле после успешной загрузки preferences

$image_info = $this->upload->data(); 

echo $image_info['file_name']; 

или через модель

$this->insert_model->form_insert($data, $image_info = array()); 
Смежные вопросы