загрузка изображения codeigniter mysql - PullRequest
2 голосов
/ 30 октября 2009

Я хотел знать, загружаю ли я изображение из CodeIgniter в базу данных, каким будет мой

$config['upload_path']

Все примеры, которые я видел, используют файловую систему. У меня есть статьи в БД, и я хотел бы хранить изображения, относящиеся к статьям в БД. Кто-нибудь может помочь?

Ответы [ 3 ]

6 голосов
/ 30 октября 2009

Вы можете прочитать эту замечательную статью под названием Хранение изображений в Mysql .

В статье рассматриваются следующие вопросы:

  • Разве это не плохая идея?
  • Что такое BLOB?
  • Создание таблицы изображений
  • Форма загрузки
  • Загрузка изображения
  • Функция загрузки ()
  • Показать изображение из базы данных
  • Отображение всей информации

Но чтобы не оставлять вас с пустыми руками, посмотрите на Blob , это тип данных для столбцов в MySQL (и различных других dbms). Это позволит вам хранить такие данные, как изображения и другие двоичные типы файлов.

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

Вы не можете просто установить свой путь загрузки и надеяться, что все решено, вам также нужно получить немного грязи!

1 голос
/ 04 мая 2013

я написал здесь в надежде, что это поможет кому-то, так как это старый пост, и ответы на него не помогают, этот код работает для меня, также часть модели не здесь, поэтому вы должны разобраться, читая документы codeigniter, я думаю, что это будет работать, если вы поместите его в свой контроллер, а также думает, что форма отправки должна указывать на эту функцию

function upload() {
 $caption = $this->input->post('caption'); 
    $codigo = $this->input->post('codigo');
    //$imagen = $this->input->post('imagen');
    $config['upload_path'] = 'uploads';// this is a directory with 777 permissions where you upload the file
    $config['allowed_types'] = 'gif|jpg|jpeg|png|pdf';
    //$config['max_size'] = '5000';
    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('imagen')) { // this is the input from the form
        echo $this->upload->display_errors();
    } else {
        //here $file_data receives an array that has all the info
        //pertaining to the upload, including 'file_name'
        $file_data = $this->upload->data();

        $fp = fopen($file_data['full_path'], 'r');
        $content = fread($fp, filesize($file_data['full_path']));
        //$content = addslashes($content);
        fclose($fp);
        $data = array( // this is the table i got in my db
            'idBotones' => null,
            'imagen' => $content, //blob image
            'caption' => $caption,
            'codigo' => $codigo
        );

        $this->load->model('generic_model');
        $table = "botones";
        $this->generic_model->insertar_datos($table, $data);
       //print_r($content);
    }
}
0 голосов
/ 05 апреля 2012

Похоже, что для большинства распространенных случаев хранения изображений в базе данных не очень хорошая идея. Пожалуйста, посмотрите эти две предыдущие темы SO:

Делать или не делать: Хранить изображения в базе данных

Хранение изображений в БД - да или нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...