0

hi its my first time here. i really dont know what's wrong with my codes. iam trying to upload file to database yet when i click the upload button, an error would occur.. (object not found) hope someone can help me...

btw, heres my code snippet

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);
    }
 }
jondavidjohn
  • 61,812
  • 21
  • 118
  • 158
ielanna
  • 1
  • 1
  • 3

1 Answers1

0

The $this->db->insert() method does not work this way. It takes two arguments: the first one is the table into which you want to insert your data, the second is an array containing your data.

In your case, you should first put your file's data into an array :

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

and then insert that into the appropriate table. I used files as an example. Use the one you actually need.

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

Please note though that except in some rare cases (file writing forbidden, etc...) it is generally a better idea to save files as ... files

jfoucher
  • 2,251
  • 2
  • 21
  • 29
  • Hello! Does the `content` attribute contain the actual file? I do not see this in my `var_dump($_FILES)` nor `$this->upload->data()` –  Feb 17 '13 at 16:36