Witam, dopiero zaczynam swoją przygodę z tym frameworkiem. Napotkałem być może banalny problem. Stworzyłem stronę z portfolio i jestem na etapie tworzenia panelu administaracyjnego i funkcji dodawania prac do portfolio.
Utworzyłem formularz który składa się z pola do uploadu i wpisania nazwy klienta.
Mam problem z tym aby nazwa uploadowanego pliku zapisywała się w bazie danych. Chciałbym żeby nazwa wgrywanego pliku również zapisywała się do bazy danych tak aby można było całość wyświetlać w widoku.
Prosiłbym o jakąs małą podpowiedź ponieważ jestem początkujący w temacie codeignitera.
Poniżej wklejam kod swoich plików odpowiedzialnych za upload i zapis.
controller: portfolio.php<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Portfolio extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('pagination');
$this->load->model('Portfolio_model');
$this->load->helper('form');
$this->load->library('form_validation');
}
public function dodaj_prace()
{
$config['upload_path'] = './images/portfolio/miniatury';
$config['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors()); }
else
{
$data = array('upload_data' => $this->upload->data()); }
$data["klient"] = array('name' => 'klient'); $rules['klient'] = "required";
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() == FALSE)
{
$data['klient']['value'] = $this->input->post('klient');
$this->load->view('home_view', $data);
}
else
{
$this->Portfolio_model->dodaj_prace(array('klient' => $this->input->post('klient'))); }
}
model: Portfolio_model.phpfunction dodaj_prace($data)
{
return $this->db->insert('portfolio', $data);
}
widok: home_view.php<?php echo form_open_multipart
('portfolio/dodaj_prace'); ?> <form method="post" accept-charset="utf-8" action="index.php/portfolio/dodaj_prace" /><Br />
Wybierz plik: <br />
<input type="file" name="userfile" size="20" /><br /><br />
Wpisz nazwę klienta:<br />
<?php echo form_input
('klient', ''); ?><br /><br />
<?php echo form_submit
('mysubmit', 'Zapisz'); ?>
Ten post edytował abcll 17.11.2012, 12:01:53