sql >> データベース >  >> RDS >> Mysql

codeigniterのMySQLデータベースBLOBへの画像のアップロード

    $this->input->post('photo') モデル内は画像情報を取得するために機能しません。画像は$_POSTではなく$_FILESに保存されているためです。したがって、アップロードライブラリ を使用する必要があります。 以下のようなcodeignitorで。

    public function update_profile() {
           $id = $this->session->userdata('id');
           $this->load->model('edit_profile_model');
    
           $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);
           $this->upload->do_upload();//upload the file to the above mentioned path
           $this->edit_profile_model->update_db_user_info($id, $this->upload->data());// pass the uploaded information to the model
       } 
    
    public function update_db_user_info($id, $imgdata) {
           $imgdata = file_get_contents($imgdata['full_path']);//get the content of the image using its path
           $data = array(
               'fullname' => $this->input->post('fullname'),
               'address' => $this->input->post('address'),
               'state' => $this->input->post('state'),
               'city' => $this->input->post('city'),
               'pincode' => $this->input->post('pincode'),
               'image' => $imgdata,
           );
           $this->db->where('id', $id);
           $this->db->update('userdetails', $data);
       } 
    

    画像を取得するには、モデルに次のような関数を記述します。

    public function get_image($id){
           $this->db->where('id', $id);
           $result = $this->db->get('userdetails');
           header("Content-type: image/jpeg");
           echo $result['image'];
    }
    

    また、画像を保存してデータベースから取得することはお勧めできません。その代わりに、画像をフォルダに保存し、以下のようにデータベースにパスを保存してみてください。

    public function update_db_user_info($id, $imgdata) {
           $imgdata = $imgdata['full_path'];// get the path of the image
           $data = array(
               'fullname' => $this->input->post('fullname'),
               'address' => $this->input->post('address'),
               'state' => $this->input->post('state'),
               'city' => $this->input->post('city'),
               'pincode' => $this->input->post('pincode'),
               'image' => $imgdata,// change the type of image from blob to varchar or text
           );
           $this->db->where('id', $id);
           $this->db->update('userdetails', $data);
       } 
    



    1. MySQLクエリ-group-byを使用すると欠落しているレコードを取得する

    2. プロジェクトに追加したSQLServerExpressデータベースにユーザーを作成するにはどうすればよいですか?

    3. 複雑なフィルタリングを使用してランダムな行を1つ選択します

    4. ReadyCloud ReadyShipper X