Postingan lainnya
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.
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->upload->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->upload->data() udah betul atau belum, nilai yang direturn sudah sesuati atau tidak $image_name =$upload_data['file_name']; </pre>
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->upload->initialize($config);
$id = $this-&gt;input-&gt;post('id');
$gambar_lama = $this-&gt;input-&gt;post('old');
if ($_FILES['image']['name'])
{
$field_name = "image";
if ($this-&gt;upload-&gt;do_upload($field_name))
{
$nama = $this-&gt;input-&gt;post('nama');
$gambar = $this-&gt;upload-&gt;data();
$data = array(
'nama' =&gt; $nama,
'image' =&gt;$gambar['file_name']
);
@unlink($path.$gambar_lama);
$where = array(
'id' =&gt;$id
);
if ($this-&gt;model_user-&gt;update_user($data, $where) == TRUE)
{
redirect('home');
}
}
} } </pre>
model :
<pre> public function update_user($data, $where) { $this->db->where($where); $this->db->update('tabel_user', $data); return TRUE; } </pre>
jika saya update gambar dan nama berhasil, tetapi jika hanya update nama nya saja, data tidak update