Как вставить имя файла в базу данных с помощью codeigniter upload lib - PullRequest
4 голосов
/ 02 сентября 2010

Можно загрузить изображение в файл с помощью библиотеки загрузки codeigniter с этим примером.

Однако я хочу отправить имя файла в базу данных.Кто-нибудь может дать мне пример?Спасибо

<?php

class Upload extends Controller {

function Upload()
{
    parent::Controller();
    $this->load->helper(array('form', 'url'));
}

function index()
{   
    $this->load->view('upload_form', array('error' => ' ' ));
}

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

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

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('upload_form', $error);
    }   
    else
    {
        $data = array('upload_data' => $this->upload->data());

        $this->load->view('upload_success', $data);
    }
}   
}
?>

Или у нас есть альтернатива?

Ответы [ 4 ]

4 голосов
/ 02 сентября 2010

Вы можете получить его с помощью метода data() следующим образом:

$upload_data = $this->upload->data();
echo $upload_data['file_name'];

Обратите внимание, что вы также можете получить другие данные для загрузки, просто проверьте, что у вас есть:

print_r($upload_data);
2 голосов
/ 03 сентября 2010

Создайте массив с тем, что вам нужно загрузить в вашу БД ... и затем вставьте его в БД, поместите что-то вроде этого в else:

 //create array to load to database
                $insert_data = array(
                    'name' => $image_data['file_name'],
                    'path' => $image_data['full_path'],
                    'thumb_path'=> $image_data['file_path'] . 'thumbs/'. $image_data['file_name'],
                    'tag' => $tag
                     );

          $this->db->insert('photos', $insert_data);//load array to database 

Важно: индексы массива должны иметь одинаковое имя со столбцами вашей таблицы!

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

0 голосов
/ 26 февраля 2018
$config['upload_path'] = './assets/uploads/';  // Upload Path will be here
        $config['allowed_types'] = 'gif|jpg|png';
        $this->upload->initialize($config);

        if ($this->upload->do_upload('upload')) {
           $file_data = $this->upload->data();
           $file_name= $file_data['file_name']; //get file name of your uploaded file from here..

         }
         else { 

          echo "Error";
         } 

        $data = array(

        'image_name' =>  $file_data['file_name'], //insert your image name from here..
        );

        $this->add_model->image_upload($data); //that will go to the model function..
        }
0 голосов
/ 05 марта 2013

Вы можете использовать этот способ:

$data = array('upload' => $this->upload->data());
echo $data['upload']['file_name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...