2013-04-04 2 views
0

У меня есть полевое изображение (на которое есть изображение). Таким образом, пользователь выбирает изображение с ПК и отправляет форму. Я позже обрабатывать все отправленные данные через:codeigniter закачанное изображение из формы

$this->input->post() 

Мой метод для вставки в базе данных:

public function add_user() 
    { 
     $data = array(
      'membership'=>$this->input->post('membership_type'), 
      'fullname'=>$this->input->post('fullname'), 
      'username'=>$this->input->post('username'), 
      'password'=>md5($this->input->post('password')), 
      'email'=>$this->input->post('email'), 
      'city'=>$this->input->post('city')); 
      'profilepic'=>$this->input->post('profilepic')); 

     $this->db->insert('members',$data); 

    } 

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

С уважением,

EDIT: Попробовал код приведен ниже, и получил это:

PHP-обнаружена ошибка

Серьезность: Уведомление

Сообщение: Использование неопределенной константы Полный_путь - предполагается 'full_path'

Filename: models/membership_model.php

Порядковый номер: 29

PHP-ошибка была обнаружена

Серьезность: Предупреждение

сообщение: Не удается изменить информацию в заголовке - заголовки уже посланные (выход начался в /home2/xsysdeve/public_html/система/ядро ​​/ Exceptions.php: 185)

Имя файла: ядро ​​/ common.php

Порядковый номер: 438

+1

Рассматривали ли вы использование [File Uploading Class] CodeIgniter (http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html)? – jleft

ответ

0

Пожалуйста, попробуйте это:

public function add_user() 
    { 
     $config['upload_path'] = '/file_path/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
     $this->load->library('upload', $config); 
     $this->upload->do_upload('profilepic'); 
     $data_upload_files = $this->upload->data(); 

     $image = $data_upload_files[full_path]; 

     $data = array(
      'membership'=>$this->input->post('membership_type'), 
      'fullname'=>$this->input->post('fullname'), 
      'username'=>$this->input->post('username'), 
      'password'=>md5($this->input->post('password')), 
      'email'=>$this->input->post('email'), 
      'city'=>$this->input->post('city')); 
      'profilepic'=>$image; 

     $this->db->insert('members',$data); 

    } 

Для получения дополнительной информации перейдите по этой ссылке: http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

+0

это дает мне ошибку. Проверка отредактирована –

+0

Еще одна вещь, о которой я не уверен ... у вас есть строка, в которой говорится: $ this-> upload-> do_upload ('profilepic'). Вы уверены, что это не должно быть $ this-> input-> post ('profilepic') вместо этого? –

+0

вы можете загрузить свой код формы HTML. – imsyedahmed

0

Вы также можете попробовать использовать 2 функции CI и проверить на пост текстовые данные, а также проверка изображения:

class SomeForm extends CI_Controller{ 

function add_user() //this function is your form 
{ 
    $this->load->view('templates/header'); 
    $this->load->view('new_form_entry', array('error' => ' ')); 
    $this->load->view('templates/footer'); 
} 


function add_user_status() //this function is your form processing 
{ 


    $config['upload_path'] = './assets/images'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    //$config['max_size'] = '2000'; 
    //$config['max_width'] = '340'; 
    //$config['max_height'] = '190'; 

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

    if (! $this->upload->do_upload()) 
    { 
     //check for errors with the upload 
     $error = array('error' => $this->upload->display_errors()); 
     $this->load->view('templates/header'); 
     $this->load->view('new_form_entry', $error); 
     $this->load->view('templates/footer'); 
    } 
    else 
    { 
     //upload the new image 
     $upload_data = $this->upload->data(); 
     $image_name = $upload_data['file_name']; 

     if($_POST){ 

     $data = array(
      'author'=>$_POST['author'], 
      'name'=>$_POST['name'], 
      'image_thumb'=>'../assets/images/'.$image_name, 
      'video'=>$_POST['video'], 
      'title'=>$_POST['title'], 
      'body'=>$_POST['body'], 
      'created' => date('Y-m-d H:i:s') 

     ); 

     //insert the new post 
     $this->your_database_model_name->insert_entry($data); 
     }     

     redirect(base_url().'SomeForm/index');   
    } 
} 

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