Code Igniter - Как сохранить изображения в базу данных - PullRequest
3 голосов
/ 16 марта 2012

Я использую codeIgniter для загрузки файлов в папки на сервере. Теперь я также хочу сохранить данные в базе данных, что мне нужно для того, чтобы получить необработанные данные и затем сохранить их в базе данных?

Вот модель для сохранения файлов:

<?php
class files extends ci_Model{
    function saves($filename, $filedata, $post_id){
        $this->db->query("INSERT INTO tbl_files SET file_data='$filedata', filename='$filename', postid='$post_id'");
    }
}
?>

Вот как я это называю с контроллера загрузки:

$filename = $data['upload_data']['file_name'];
$file_data = file_get_contents($data['upload_data']['file_name']);

$this->load->model('files');
$this->files->saves($filename, $file_data, 'ID1');

Структура таблицы:

  • file_data (LONG BLOB)
  • имя файла (VARCHAR)

Ответы [ 3 ]

2 голосов
/ 16 марта 2012

Хранение пути - самый лучший метод. Но если вы хотите попробовать ....

То же, что в PHP или CodeIgniter,

Лучше я дам вам ссылку, потом напишу код здесь: http://www.techcubetalk.com/2009/01/tutorial-on-how-to-store-images-in-mysql-blob-field/

1 голос
/ 04 июля 2013

Попробуйте, это работает над моим кодом`

function _save($id = null){

    $config['upload_path'] = './asset/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg';
    $config['max_size'] = '1000';
    $config['max_width'] = '1024';
    $config['max_height'] = '768';
    $config['encrypt_name'] = TRUE;
    $this->load->library('upload', $config);    

        if($_POST || $_FILES){
            if(!$this->upload->do_upload('field_input_name')){
                echo $this->upload->display_errors('<p>', '</p>');
            } else {
                $w = $this->upload->data();
                $data = array(
                    'field_input_name' => $w['file_name'],
                    );
                 $this->db->insert('table_image', $data); 
            }
        }

}

0 голосов
/ 16 марта 2012

Я решил проблему с помощью удобной mysql_real_escape_string () следующим образом:

$filename = $data['upload_data']['file_name'];
$file_data = mysql_real_escape_string(file_get_contents($data['upload_data']['full_path']));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...