В моем контроллере у меня есть следующие функции, которые загружают изображение в локальный каталог, который отлично работает. Теперь я хочу сохранить в db. Мне просто нужно выяснить, где поставить код, который у меня уже есть, и думаю, что это правильно., где я помещаю insert db query codeigniter
мне нужно вставить этот:
$this->location->store_file_path($file);
в либо до, либо после того, как рис будет загружен в локальном каталоге. Куда он должен идти?
Контроллер:
public function image() {
//type must either be type=logo or type=profile_picture
if (isset($_FILES['file']) && isset($_POST['type'])) {
//Codeigniter upload
$config['upload_path'] = 'uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['encrypt_name'] = TRUE;
$config['max_size'] = 5120;
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->upload->initialize($config);
if (!$this->upload->do_upload('file')) {
$status = 'error';
$msg = $this->upload->display_errors('', '');
} else {
$data = $this->upload->data();
//$file_id = $this->files_model->insert_file($data['file_name'], $_POST['title']);
if ($data) {
$status = "success";
$data['url'] = $config['upload_path'] . $data['file_name'];
$msg = $data;
} else {
unlink($data['full_path']);
$status = "error";
$msg = "Something went wrong when saving the file, please try again.";
}
}
} else {
$status = "error";
$msg = "Please select a file to upload";
}
echo json_encode(array('status' => $status, 'msg' => $msg));
}
Вот моя модель функция:
public function store_file_path($file)
{
$this->db->insert('TACTIFY_locationcards', 'name'=>$file);
}
только что отредактированный и обновленный переданный параметр. – 2014-09-16 07:05:03
просто вставьте его, как обычно, используя активную запись, в вашем случае нет ничего особенного. – Ghost
Просто личный совет, в то время как это ваше приложение, и вы можете разместить свой код там, где хотите (вам не нужно использовать модели), вероятно, лучше разместить свой код загрузки в модели, возможно, как другой метод. Это связано с тем, что, если вы решите, что хотите иметь другой метод загрузки для этой же цели, вам нужно будет дублировать код загрузки в контроллере. Размещение его и вызов того же кода из модели уменьшали бы дублирование. –