Saat upload foto muncul pesan error Undefined index: avatar

Tolong bantuannya untuk mengatasi masalah ini.

Jadi saya mau upload foto tapi selalu muncul pesan error Undefined index: avatar

Controller

public function change_data()
	{
		helper(['form', 'url']);
		$userModel = new UserModel();

		if ($this->request->getMethod() == 'post') {
			if ($_FILES['avatar']['name'] == "")
			 {
				$rules = [
					'nama' 		=> 'required|alpha_space|min_length[2]',
					'email'		=> 'required|valid_email',
					'nip' 		=> 'required|min_length[2]',
					'tempat_lahir' 		=> 'required|alpha_space|min_length[2]'
				];
			} else {
				$rules = [
					'nama' 		=> 'required|alpha_space|min_length[2]',
					'email'		=> 'required|valid_email',
					'nip' 		=> 'required|min_length[2]',
					'tempat_lahir' 		=> 'required|alpha_space|min_length[2]',
					'avatar'	=> [
						'uploaded[avatar]',
						'mime_in[avatar,image/jpg,image/jpeg,image/png]',
						'max_size[avatar,4096]'
					]
				];
			}

			if ($this->validate($rules)) {
				if ($_FILES['avatar']['name'] == "") {
					$params = [
						'nama' 			=> $userModel->escapeString(esc($this->request->getPost('nama'))),
						'email' 		=> $userModel->escapeString(esc($this->request->getPost('email'))),
						'nip' 			=> $userModel->escapeString(esc($this->request->getPost('nip'))),
						'tempat_lahir' 	=> $userModel->escapeString(esc($this->request->getPost('tempat_lahir'))),
					];
				} else {

					//get data user by session email
					$user = $userModel->where('email', session()->get('email'))
						->first();

					if ($user) {
						$deleteFile = unlink('./assets/avatar/' . $$user['avatar']);
						if ($deleteFile) {
							$file = $this->request->getFile('avatar');
							$uploadFile = $this->upload_avatar($file);
						}
					}

					$params = [
						'nama' 			=> $userModel->escapeString(esc($this->request->getPost('nama'))),
						'email' 		=> $userModel->escapeString(esc($this->request->getPost('email'))),
						'nip' 			=> $userModel->escapeString(esc($this->request->getPost('nip'))),
						'tempat_lahir' 	=> $userModel->escapeString(esc($this->request->getPost('tempat_lahir'))),
						'avatar'		=> $uploadFile,
					];
				}
						$update = $userModel->update($user['id_user'], $params);

				if ($update) {
					session()->setFlashdata('success', 'Berhasil Update Data. Apabila Tampilan Data Belum Berubah, Silakan Lakukan Logout dan Login Kembali');
					return redirect()->route('profile');
				} else {
					session()->setFlashdata('danger', 'Gagal Update Data');
					return redirect()->route('edit')->withInput();
				}
			} else {
				$data['validation'] = $this->validator;
			}
		}

		$data['title'] = 'Edit Profile';
		return view('admin/users/ubah_data', $data);
	}

View

<form action="<?= base_url('admin/user/change_data') ?>" method="POST">
              <?= csrf_field(); ?>

                <div class="form-group">
                    <label for="nama">Nama</label>
                    <input type="text" class="form-control" id="nama" name="nama" value="<?= session()->nama ?>">
               </div>

               <div class="form-group">
                    <label for="nip">NIP</label>
                    <input type="text" class="form-control" id="nip" name="nip" value="<?= session()->nip ?>">
               </div>

               <div class="form-group">
                    <label for="email">Email</label>
                    <input type="text" class="form-control" id="email" name="email" value="<?= session()->email ?>">
               </div>

               <div class="form-group">
                    <label for="tempat_lahir">Tempat Lahir</label>
                    <input type="text" class="form-control" id="tempat_lahir" name="tempat_lahir" value="<?= session()->tempat_lahir ?>">
               </div>

               <div class="form-group">
                    <label for="avatar">Foto <small>(Optional)</small></label>
                      <div class="custom-file">
                    <input type="file" class="custom-file-input" id="avatar" name="avatar">
                    <label class="custom-file-label" for="avatar">Choose file</label>
                  </div>
                </div>

                <div class="form-group">
                    <input type="submit" value="Update" class="btn btn-info" />
                </div>
            </form>

Mohon bantuannya ya kak. Terimakasih

avatar bagusti
@bagusti

6 Kontribusi 0 Poin

Diperbarui 3 tahun yang lalu

3 Jawaban:

Jawaban Terpilih

<div>Tambahkan attribute enctype=multipar/form-data pada tag form seperti ini :</div><pre> &lt;form action="&lt;?= base_url('admin/user/change_data') ?&gt;" method="POST" enctype="multipart/form-data"&gt;</pre><div>&nbsp;<br>Silalhkan baca juga contohnya disini&nbsp;<a href="https://www.petanikode.com/php-upload-file/">https://www.petanikode.com/php-upload-file/</a><br>Semoga berhasil.</div>

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 3 tahun yang lalu

Tanggapan

Alhamdulillah, sudah saya coba dan berhasil. Terimakasih kak

<div>Maaf kak kalo muncul error seperti ini, salahnya apa ya?<br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:44201,&quot;height&quot;:516,&quot;url&quot;:&quot;https://i.ibb.co/tQjkP2C/image.png&quot;,&quot;width&quot;:1250}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/tQjkP2C/image.png" width="1250" height="516"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure></div>

avatar bagusti
@bagusti

6 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

<div>Sudah saya coba dan ternyata sudah bisa kak terimakasih</div>

avatar bagusti
@bagusti

6 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban