загрузка файла в базу данных - PullRequest
0 голосов
/ 04 февраля 2011

Привет, это мой первый раз здесь.Я действительно не знаю, что не так с моими кодами.Я пытаюсь загрузить файл в базу данных, но когда я нажимаю кнопку загрузки, происходит ошибка .. (объект не найден) надеюсь, что кто-то может мне помочь ...

кстати, вот мой фрагмент кода

function do_upload()
{

    $config['upload_path'] = './uploads/';      
    $config['allowed_types'] = 'gif|jpg|png|doc|txt|pdf';
    $config['max_size'] = '5000';
    $config['max_width']  = '2500';
    $config['max_height']  = '2500';
    $config['remove_spaces']= 'true';

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

    $data= array('userfile' => $this->upload->do_upload());

    //DEFINE POSTED FILE INTO VARIABLE
    $name= $data['userfile']['name'];
    $tmpname= $data['userfile']['tmpname'];
    $type= $data['userfile']['type'];
    $size= $data['userfile']['size'];

    //OPEN FILE AND EXTRACT DATA /CONTENT FROM IT
    $fp     = fopen($tmpname, 'r');
    $content= fread($fp, $size($tmpname));
    $content= addslashes($content);
    fclose($fp);


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

        $this->load->view('upload', $error);
    }   
    else
    {
        $data = array('userfile' => $this->upload->data());
        $this->load->database();
        $ret=$this->db->insert($name, $type, $size, $content);
        unlink($tmpname);
        //$this->load->database();
        //$this->load->view('upload', $data);
    }
 }

1 Ответ

0 голосов
/ 06 февраля 2011

Метод $this->db->insert() не работает таким образом.Он принимает два аргумента: первый - это таблица, в которую вы хотите вставить свои данные, второй - массив, содержащий ваши данные.

В вашем случае вы должны сначала поместить данные вашего файла в массив:

$file_data=array('name'=>$name,'type'=>$type,'size'=>$size,'content'=>$content)

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

$ret=$this->db->insert('files',$file_data);

Обратите внимание, что, за исключением некоторых редких случаев (запись файлов запрещена и т. Д.), Обычно лучше сохранять файлы как ... файлы

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