2013-04-05 5 views
0

Я пытаюсь настроить файл загрузки в моей функции CodeIgniter ..codeigniter получает сообщение об ошибке при загрузке файла?

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

Может кто-нибудь помочь мне, как решить мою проблему ?

Моя функция в контроллере.

function insert_user_details(){ 

      $this->load->library('form_validation'); 
      $this->form_validation->set_rules('UserName', 'Username', 'callback_username_check'); 
      //$this->form_validation->set_rules('Password', 'Password', 'required'); 
      //$this->form_validation->set_rules('Email', 'Email', 'required|email'); 
      //$this->form_validation->set_rules('FirstName','FirstName', 'required'); 
      //$this->form_validation->set_rules('MiddleName','FirstName', 'required'); 
      //$this->form_validation->set_rules('LastName','FirstName', 'required'); 

      if ($this->form_validation->run() == FALSE) 
      { 
       echo 'Please Fill in the Forms Correctly' ; 
      } 
      else 
      { 
       $config['upload_path'] = '../user_uploads/'; 
       $config['allowed_types'] = 'gif|jpg|png'; 
       $config['max_size'] = '100'; 
       $config['max_width'] = '1024'; 
       $config['max_height'] = '768'; 
       $this->load->library('upload', $config); 
       $pass = $this->input->post('Password'); 
       $pass = md5($pass); 
       $data = array(
        'UserName'=>$this->input->post('UserName'), 
        'Password'=>$pass, 
        'FirstName'=>$this->input->post('FirstName'), 
        'MiddleNames'=>$this->input->post('MiddleName'), 
        'LastName'=>$this->input->post('LastName'), 
        'DateOfBirth'=>date('Y-m-d',strtotime($_POST['DateOfBirth'])), 
        'AddressLine1'=>$this->input->post('AddressLine1'), 
        'AddressLine2'=>$this->input->post('AddressLine2'), 
        'City'=>$this->input->post('City'), 
        'CountryID'=>$this->input->post('CountryID'), 
        'NationalityCountryID'=>$this->input->post('NationalityCountryID'), 
        'MobileNo'=>$this->input->post('MobileNo'), 
        'WorkPhoneNo'=>$this->input->post('WorkPhoneNo'), 
        'WorkPhoneExtention'=>$this->input->post('WorkPhoneExtension'), 
        'NationalTaxNumber'=>$this->input->post('NationalTaxNumber'), 
        'NationalIDCardNo'=>$this->input->post('NationalIDCardNo'), 
        'MaritalStausID'=>$this->input->post('UI_LanguageID'), 
        'ReligionID'=>$this->input->post('ReligionID'), 
        'Photograph' => $this->upload->data(), 
        'Email'=>$this->input->post('Email'), 
        'WebUrl'=>$this->input->post('WebUrl'), 
        'HighestEducation'=>$this->input->post('HighestEducation'), 
        'UserResumeFile'=> 'res.jpg', 
        'UI_LanguageID'=> $this->input->post('UI_LanguageID'), 
        'LastLoginDate'=>'2013-02-24 00:00:00', 
        'LastLoginIP'=>'192.168.1.2', 
        'Remarks'=>$this->input->post('Remarks'), 
        'CreateByUserID'=>'1', 
        'CreateAt'=>'2013-02-24 00:00:00', 
        'ModifiedByUserID'=>'2', 
        'ModifiedAt'=>'2013-02-24 00:00:00', 
        'IsActive'=>'1' 
       ); 
       $table = 'sys_user_accounts'; 
       $this->common_model->insert_record($table, $data); 
       echo 'Success Message' ; 
       //$this->load->view('user_management/success','','true'); 
     } 
    } 

Вот файл вида.

'Фотография', 'ID' => 'Фотография', 'заполнитель' => 'Загрузить User Photo', 'MaxLength' => '250' ); echo form_upload ($ input_field_attributes); ?>

да и я использовал многочастные

echo form_open_multipart('user_management/manage_users',array('id' => 'insert_user')); 

так может кто-нибудь сказать мне, почему я получаю эту ошибку ниже в поджигатель? и как его решить ??

> Error Number: 1054 

Unknown column 'Array' in 'field list' 

INSERT INTO `sys_user_accounts` (`UserName`, `Password`, `FirstName`, `MiddleNames`, `LastName`, `DateOfBirth`, `AddressLine1`, `AddressLine2`, `City`, `CountryID`, `NationalityCountryID`, `MobileNo`, `WorkPhoneNo`, `WorkPhoneExtention`, `NationalTaxNumber`, `NationalIDCardNo`, `MaritalStausID`, `ReligionID`, `Photograph`, `Email`, `WebUrl`, `HighestEducation`, `UserResumeFile`, `UI_LanguageID`, `LastLoginDate`, `LastLoginIP`, `Remarks`, `CreateByUserID`, `CreateAt`, `ModifiedByUserID`, `ModifiedAt`, `IsActive`) VALUES ('hello', '1a1dc91c907325c69271ddf0c944bc72', 'fda', 'fda', 'fad', '2010-03-03', '1', 0, '1', 0, 0, '1', '1', 0, '1', 0, 0, 0, Array, 0, 0, 0, 'res.jpg', 0, '2013-02-24 00:00:00', '192.168.1.2', 0, '1', '2013-02-24 00:00:00', '2', '2013-02-24 00:00:00', '1') 

Filename: C:\xampp\htdocs\projects\zorkif_nextgen\system\database\DB_driver.php 

Line Number: 330 

ответ

0

В вашем массиве $ data, 'Photograph', вы присваиваете $ this-> upload-> data(). Фактически $ this-> upload-> data() эта вспомогательная функция возвращает массив. Подробнее here

Если вы пытаетесь сохранить имя фотографии, попробуйте этот

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

Тогда в массиве

'Photograph' => $name['file_name'] 
+0

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

1

Я не очень знаком с CI, но я могу см., что $this->upload->data(); возвращает массив, и именно поэтому он выдает ошибку.

Если вы используете PHP 5.4 попробуйте использовать $this->upload->data()['file_name'] или $this->upload->data()['full_path'], и если вы используете PHP 5.3 или ниже, чем просто назначить $this->upload->data() некоторых переменные и чем значение доступа через соответствующие ключи.

Как раз перед установкой сделайте это var_dump($this->upload->data());, и я уверен, что вы это выясните.

+0

Получил ваш момент Спасибо.Но я ничего не получаю, пуст на $ this-> upload-> data() ['file_name'] , почему он не получает никакой ценности? –

+0

Попробуйте 'var_dump ($ this-> upload-> data());' и посмотрите, какие значения он содержит. –

0

Попытки отладить $this->upload->do_upload('image_file_name') // Вашего фактического ввода поданного имя

и перед загрузкой сделать проверить состояние // Проверьте, правильно ли загружено успешно или нет

if(!$this->upload->do_upload('image_file_name')) 
{ 
    // If all uploading condition not mate like image size/type etc. 
} 
+0

Я не могу увидеть проверку файла изображения. если критерии загрузки изображения не будут удовлетворены, чем то, как вы справитесь с этим. Лучше проверить файлы загруженных изображений на $ config ['allowed_types'] = 'gif | jpg | png'; $ config ['max_size'] = '100'; $ config ['max_width'] = '1024'; $ config ['max_height'] = '768'; – MaNKuR

+0

проверить функциональность контроллера загрузки изображений [здесь] (http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html) – MaNKuR

0

'Photograph' => $this->upload->data()

$ это -> upload-> data() - это функция CI, которая возвращает массив, поэтому, чтобы вставить его в столбец в базе данных, вам нужно либо сериализовать его, либо изменить его на строку, либо просто установить одно значение из arr в поле «Фотография».

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