2017-07-04 2 views
0

Ich mache eine Website über das CodeIgniter-Framework, damit Benutzer Produkte auf der Website in die Datenbank hochladen können. Ich versuche, eine Funktion zu machen, damit Benutzer Bilder in meine Datenbank hochladen können, aber es funktioniert nicht wirklich.Bild-zu-Datenbank-Upload funktioniert nicht in Codeigniter

Hier einige Informationen: DB Tabellenname: Produkte Die Spalte DB Tabellenname, den ich die Bilder in gespeichert werden sollen: product_foto Ordner Bild:

My controller: 
    <?php 
    defined('BASEPATH') OR exit('No direct script access allowed'); 
    class Product extends CI_Controller { 

    var $data = array(); 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('product_model'); 
     $this->load->helper(array('form', 'url')); 
    } 

    public function product_form() 
    { 
     $save = array(
      'product_naam'   => $this->input->post('product_naam'), 
      'product_beschrijving'   => $this->input->post('product_beschrijving'), 
      'product_categorie' => $this->input->post('product_categorie'), 
      'ophaal_plaats' => $this->input->post('ophaal_plaats'), 
      'product_foto' => $this->input->post('product_foto'), 
      'date_created' => date('Y-m-d'), 
      'date_updated' => date('Y-m-d') 
      ); 

     $this->product_model->saveProduct($save); 
     redirect('https://kadokado-ferran10.c9users.io/AlleCadeausController'); 
    } 


    public function upload(){ 
     $config['upload_path'] = './upload/'; 
     $config['allowed_types'] = 'jpg|jpeg|png'; 

     $this->load->library('upload', $config); 
     if(!$this->upload->do_upload('file')){ 
     $this->db->insert('products', array(
      'product_foto' => $this->upload->file_name 
      )); 
     $error = array('error'=>$this->upload->display_errors()); 
     $this->load->view('product_form', $error); 
     }else{ 
     $file_data = $this->upload->data(); 
     $data['img'] = base_url().'/upload/'.$file_data['file_name']; 
     header('location:https://kadokado-ferran10.c9users.io/Product/'); 
     } 
    } 

    } 

Mein Modell-Datei hochladen:

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
class Product extends CI_Controller { 

    var $data = array(); 

Meine Ansicht file:

<?php echo form_open_multipart('Product/upload'); ?> 
    <input type="file" name="userfile" /> 

    <div class="form-group"> 
     <label for="name">Name</label> 
     <input type="text" name="name"> 
    </div> 

    <input type="submit" name="submit" value="test" /> 

</form> 

Wenn ich das Formular nur das Bild auf den Upload-Ordner hinzugefügt wird, aber wird es nicht in die Datenbank Spalte hinzugefügt ..

+0

Put INSERT-Abfrage in anderen folgen Bedingung. –

Antwort

2

Ihre upload() Funktion ändern als

public function upload(){ 
    $config['upload_path'] = './upload/'; 
    $config['allowed_types'] = 'jpg|jpeg|png'; 

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

    if(!$this->upload->do_upload('userfile')){ 
     $error = array('error'=>$this->upload->display_errors()); 
     $this->load->view('product_form', $error); 
    }else{ 
     $file_data = $this->upload->data(); 
     $this->db->insert('products', array(
      'product_foto' => $file_data['file_name'] 
      )); 
     $data['img'] = base_url().'/upload/'.$file_data['file_name']; 
     header('location:https://kadokado-ferran10.c9users.io/Product/'); 
    } 
} 
+0

Hey, ich habe versucht, du bist Code und ein leeres Produkt wird in die Datenbank ohne einen Namen in der Bildspalte hinzugefügt – lablanco

+0

laden Sie über AJAX –

+0

Nein ich bin nicht mit AJAX – lablanco

Verwandte Themen