Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter:无法上载文件,未定义索引:avatar_Php_Codeigniter_Codeigniter 4 - Fatal编程技术网

Php Codeigniter:无法上载文件,未定义索引:avatar

Php Codeigniter:无法上载文件,未定义索引:avatar,php,codeigniter,codeigniter-4,Php,Codeigniter,Codeigniter 4,我似乎无法在codeigniter中上载文件。我不知道问题是否出在if($\u文件['avatar']['name']==“”)上 我的控制器 private function upload_avatar($file) { $newName = $file->getRandomName(); $upload = $file->move(ROOTPATH . 'public/assets/avatar', $newName); i

我似乎无法在codeigniter中上载文件。我不知道问题是否出在if($\u文件['avatar']['name']==“”)上

我的控制器

private function upload_avatar($file)
    {
        $newName = $file->getRandomName();
        $upload = $file->move(ROOTPATH . 'public/assets/avatar', $newName);
        if ($upload) {
            return $newName;
        } else {
            return false;
        }
    }

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);
    }
我的看法

<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>

我认为您没有在表单标记中包含
enctype=“multipart/form data”


你的表格