2017-06-08 7 views
0

を取得しています画像をアップロードしようとすると、画像はアップロードフォルダに入りますが、phpmyadminテーブルの行にアップロードされません。ボタンでCodeIgniterの中の私のデータベースに画像をアップロードしようとしているが、私は、ユーザーが自分のデータベースに画像を追加することができますので、CodeIgniterは(PHP)で関数を作るしようとしているが、私はエラーを取得していますエラーに

私はphpMyAdminの

データベース名

使用しています:kadokado

テーブル名:product_foto

画像フォルダを:私はこれらのイメージを置きたい

表の列名製品アップロード

マイコントローラファイル(Product.php):

class Product extends CI_Controller { 


    var $data = array(); 

     public function __construct() 
{ 
    parent::__construct(); 
} 

} 

    public function index() 
{ 
    $config = array (
    'upload_path' => 'upload/', 
    'allowed_types' => 'jpg|jpeg|png|bmp', 
    'max_size' => 0, 
    'filename' => url_title($this->input->post('file')) 

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

    if ($this->upload->do_upload('file')) { 
    $this->db->insert('products', array(
     'product_foto' => $this->upload->product_foto 
    )); 
    $this->session->set_flashdata('msg', 'Success'); 
    } 

    $this->load->view('product_form', $this->data); 
} 

}

これは私のビューファイル(product_form.php)です:

<?php 
echo $this->session->flashdata('msg'); 
echo form_open_multipart(); 
echo form_upload('file'); 
echo form_submit('upload', 'Upload'); 
echo form_close(); 
?> 

そして、これらは私が取得していますエラーです: `

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: CI_Upload::$product_foto 

Filename: controllers/Product.php 

Line Number: 21 

Backtrace: 

File: /home/ubuntu/workspace/application/controllers/Product.php 
Line: 21 
Function: _error_handler 

File: /home/ubuntu/workspace/index.php 
Line: 315 
Function: require_once 






A Database Error Occurred 

Error Number: 1048 

Column 'product_foto' cannot be null 

INSERT INTO `products` (`product_foto`) VALUES (NULL) 

Filename: controllers/Product.php 

Line Number: 22 
+0

やあ、まず、あなたがのためにロードする必要がありますあなたのフォームで、アクションコントローラを指定する必要があります。アップロードされたファイルの名前を変更する必要がない場合は、 ''filename' => url_title($ this - >入力 - >ポスト( 'ファイル')) 'だけで何をこんにちは、その後' 'upload_path' => './upload /'、 ' – elddenmedio

+0

のための' 'upload_path' => 'アップロード/'、 '変更で、空でありますあなたがこの文で意味すること:あなたがアップロードされたファイルの名前を変更する必要がないなら、 'filename' => url_title($ this-> input-> post( 'file'))を空にしないでください。 'filename' => url_title($ this-> input-> post( 'file'))を削除する必要がありますか? –

+0

はい、またはこの ''filename' => $ _FILES [ 'userfile'] [ '名前']のためのCHEは'あなたが 'のvar_dump(の$ this - >入力 - >ポスト( 'ファイルを'))を作る場合は'あなたがするので、配列を得る – elddenmedio

答えて

0

は、この機能を試してみてください

public function index() { 
    $data = array(); 

    $config = array(
     'upload_path' => 'upload', 
     'allowed_types' => 'jpg|jpeg|png|bmp', 
     'max_size' => 250, 
     'max_width' => 1920, 
     'max_heigh' => 1080, 
); 
$this->load->library('upload', $config); 

if (!$this->upload->do_upload('userfile')) { 

    $error = array('error' => $this->upload->display_errors()); 
    // var_dump($error); die; check errors 
} else { 
    $fileName = $this->upload->data(); 
    $data['product_foto'] = $fileName['file_name']; 
    $this->db->insert('products', $data); 
    $this->session->set_flashdata('msg', 'Success'); 
} 
    $this->load->view('product_form'); 
} 
関連する問題

 関連する問題