Update image di codeigniter

hallo bro,

saya mau update data berupa text dan file,

ini controller nya

public function Update()
    {

      $id = $this->input->post('id');

      $nama               = $this->input->post('nama');

      if($_FILES['image']['name']!="")
            {
      $config['upload_path']   = './image/';
      $config['allowed_types'] ='gif|jpg|png|jpeg|jpe|pdf|doc|docx|rtf|text|txt';
        $this->load->library('upload', $config);
        if(!$this->upload->do_upload('image'))
        {
          $error = array('error' => $this->upload->display_errors());
        }
        else
        {
            $upload_data=$this->upload->data();
            $image_name =$upload_data['file_name'];
        }
    }
    else{
                $image_name=$this->input->post('old');
            }

        $data = array(
          'nama'   => $nama,
          'image'  => $image_name,
          );

        $this->model_user->update_user($data,$id);
    }

ini model nya

public function update_user($data, $id)
    {
        $this->db->where('id', $id);
        $this->db->update('tabel_user', $data);
        return TRUE;
    }

ketika proses update, dan mau ganti image nya tidak dapat ke kirim ke database nya.

mohon bantuannya.

Terima Kasih.

avatar Query
@Query

61 Kontribusi 6 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

bisa dijelaskan di pertnayaan, maskud "tidak dapat dikirim" ada errorkah, atua lancar, tapi tidak tersimpan di databbase dst.

jadi begini mas hilman, data berupa text sudah berhasil di update, ketika saya mau update gambar, itu tidak berhasil, gambar nya masuk ke database tetapi gambar nya tidak ada.

maksudnya gambarnya masuk ke database tapi tidak ada?

coba bikin fungsi terpisah, untuk upload gambar, bikin versi simple dari yang kamu buat. Jadi bisa deteksi pelan pelan erronya dimana

iya mas hilman, gambar nya tidak masuk ke database

saya update nya dengan modal mas hilman

2 Jawaban:

Coba belajar debug pelan-pelan, lihat kemungkinan kesalahan dari mana. Kalau data kosong di database, coba di track asal nama yang harusnya tersimpan. Di kasus kamu bagian yang menyimpan nama ada di variable $image_name

Pertnayaan berikutnya, variable $image_name dapatnya dari mana? kalau lihat kode kamu diatas $image_name = $upload_data['file_name'];

Berarti sekarang tugas kamu lihat, apakah $upload_data nya sudah betul?

<pre> $upload_data=$this-&gt;upload-&gt;data(); die(var_dump($upload_data)); //biasakan menggunakan die dan var_dump //disini kamu lihat $uploaddata betul ngga ada file namenya atau ngga, kalau ngga berarti ada kesalahannya disini, artinya kamu perlu cek lagai metode $this-&gt;upload-&gt;data() udah betul atau belum, nilai yang direturn sudah sesuati atau tidak $image_name =$upload_data['file_name']; </pre>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 5 tahun yang lalu

saya sudah berhasil update gambar nya dengan controller seperti ini :

<pre> public function Update() { $path = './image/'; $config['upload_path'] = $path; $config['allowed_types'] = 'gif|jpg|png|jpeg|jpe|pdf|doc|docx|rtf|text|txt'; $config['max_size'] = '200048'; $config['max_width'] = '100024'; $config['max_height'] = '200000'; $nama_file = "image_"; $config['file_name'] = $nama_file; $this-&gt;upload-&gt;initialize($config);

  $id = $this-&amp;gt;input-&amp;gt;post(&#039;id&#039;);

  $gambar_lama = $this-&amp;gt;input-&amp;gt;post(&#039;old&#039;);
  if ($_FILES[&#039;image&#039;][&#039;name&#039;]) 
  {

  $field_name = &quot;image&quot;;
  if ($this-&amp;gt;upload-&amp;gt;do_upload($field_name)) 
    {
  $nama   = $this-&amp;gt;input-&amp;gt;post(&#039;nama&#039;);
  $gambar = $this-&amp;gt;upload-&amp;gt;data();

 $data = array(
      &#039;nama&#039;   =&amp;gt; $nama,
      &#039;image&#039;         =&amp;gt;$gambar[&#039;file_name&#039;]
      );

@unlink($path.$gambar_lama);

$where = array(
  &#039;id&#039; =&amp;gt;$id
);

if ($this-&amp;gt;model_user-&amp;gt;update_user($data, $where) == TRUE) 
 {

  redirect(&#039;home&#039;); 
  }
}

} } </pre>

model :

<pre> public function update_user($data, $where) { $this-&gt;db-&gt;where($where); $this-&gt;db-&gt;update('tabel_user', $data); return TRUE; } </pre>

jika saya update gambar dan nama berhasil, tetapi jika hanya update nama nya saja, data tidak update

avatar Query
@Query

61 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban