Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 3中不工作_Php_Mysql_Codeigniter - Fatal编程技术网

Php 上传配置文件照片在codeigniter 3中不工作

Php 上传配置文件照片在codeigniter 3中不工作,php,mysql,codeigniter,Php,Mysql,Codeigniter,我想允许我的用户更新他们的个人资料和个人资料照片。如果我在视图中注释轮廓照片部分并在控制器中删除。编辑进行得很顺利,但是如果我把上传部分放在控制器中,编辑功能就不起作用了。顺便说一句,我对codeigniter还是新手。你能帮我找出我的错误吗。。多谢各位 my controller public function edit($id){

我想允许我的用户更新他们的个人资料和个人资料照片。如果我在视图中注释轮廓照片部分并在控制器中删除。编辑进行得很顺利,但是如果我把上传部分放在控制器中,编辑功能就不起作用了。顺便说一句,我对codeigniter还是新手。你能帮我找出我的错误吗。。多谢各位

      my controller                               
      public function edit($id){                                
                                                          
        $this->load->model('User_model');       
        $user = $this->User_model->getUser($id);
        $data = array();
        $data['user'] = $user;
        $data1['user'] = $this->db->get_where('user', ['email' =>
        $this->session->userdata('email')])->row_array(); 
        $this->form_validation->set_rules('name', 'Name', 'required|trim');
        $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
        $this->form_validation->set_rules('password1', 'Password', 'required|trim|min_length[8]|matches[password2]', [
            'matches' => 'password not match!',
            'min_length' => 'password too short'
        ]);

        $this->form_validation->set_rules('password2', 'Password', 'required|trim|matches[password1]');

        if ($this->form_validation->run() == false) {
            $this->load->view('templates/admin/header', $data, $data1);
            $this->load->view('templates/admin/sidebar', $data, $data1);
            $this->load->view('templates/admin/topbar', $data1);
            $this->load->view('admin/updateprofile', $data, $data1);
            $this->load->view('templates/admin/footer', $data, $data1);
        } else {

            $upload_image = $_FILES['image']['name'];

            if ($upload_image) {
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size'] = '2048';
                $config['upload_path'] = './assets/img/proile/';

                $this->load->library('upload', $config);

                if ($this->upload->do_upload('image')) {

                    $old_image = $data['user']['image'];
                    if ($old_image != 'default.jpg') {
                        unlink(FCPATH . 'assets/img/profile/' . $old_image);
                    }

                    $new_image = $this->upload->data('file_name');
                    $this->db->set('image', $new_image);
                } else {
                    echo $this->upload->display_errors();
                }
            }

            $data = array(
                'name' => htmlspecialchars($this->input->post('name', true)),
                'password' => password_hash($this->input->post('password1'), PASSWORD_DEFAULT),
            );
            $this->User_model->updateUser($id, $data);
            $this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">
            User update successfully!
          </div>');
            redirect('adminprofile');
        }
    }
}
我的看法

<div class="container-fluid">
    <h1 class="h3 mb-4 text-gray-800">Edit Profile</h1>

    <div class="row">
        <div class="col-lg-8">

            <form class="user" method="post" action="<?php echo base_url() . 'AdminUpdateProfile/edit/' . $user['id']; ?>">
                <div class="form-group row">
                    <label for="name" class="col-sm-2 col-form-label">Nama</label>
                    <div class="col-sm-10">
                        <input type="name" class="form-control" id="name" name="name" value="<?= set_value('name', $user['name']); ?>">
                    </div>
                </div>
                <div class="form-group row">
                    <label for="email" class="col-sm-2 col-form-label">Emel</label>
                    <div class="col-sm-10">
                        <input type="email" class="form-control" id="email" name="email" value="<?= set_value('email', $user['email']); ?>" readonly>
                    </div>
                </div>
                <div class="form-group row">
                    <label for="email" class="col-sm-2 col-form-label">Kata Laluan</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="password1" name="password1" placeholder="8 aksara">
                        <?= form_error('email', '<small class="text-danger pl-3">', '</small>'); ?>
                    </div>
                </div>
                <div class="form-group row">
                    <label for="email" class="col-sm-2 col-form-label">Ulang Kata Laluan</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="password2" name="password2" placeholder="Masukkan semula">
                        <?= form_error('email', '<small class="text-danger pl-3">', '</small>'); ?>
                    </div>
                </div>
                <div class="form-group row">
                    <div class="col-sm-2">Gambar Profil</div>
                    <div class="col-sm-10">
                        <div class="row">
                            <div class="col-sm-3">
                                <img src="<?= base_url('assets/img/profile/') . $user['image']; ?>" class="img-thumbnail">
                            </div>
                            <div class="col-sm-9">
                                <div class="custom-file">
                                    <input type="file" class="custom-file-input" id="image" name="image">
                                    <label class="custom-file-label" for="image">Choose file</label>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="form-group row justify-content-end">
                    <div class="col-sm-10">
                        <button type="submit" class="btn btn-primary">Edit</button>
                    </div>
                </div>



            </form>


        </div>
    </div>

</div>


<!--<div class="container">

    <div class="card o-hidden border-0 shadow-lg my-5 col-lg-7 mx-auto">
        <div class="card-body p-0">
            <div class="row">
                <div class="col-lg">
                    <div class="p-5">
                        <div class="text-center">
                            <img src="<//?= base_url('assets/img/profile/') . $user['image']; ?>">
                        </div>

                        <hr>

                        <?= $this->session->set_flashdata('message'); ?>

                        <form class="user" method="post" action="<?php echo base_url() . 'AdminUpdateProfile/edit/' . $user['id']; ?>">
                            <div class="form-group row">
                                <input type="text" class="form-control" id="name" name="name" value="<?= set_value('name', $user['name']); ?>">
                                //<?= form_error('name', '<small class="text-danger pl-3">', '</small>'); ?>
                            </div>

                            <div class=" form-group row">
                                <input type="text" class="form-control" id="email" name="email" value="<?= set_value('email', $user['email']); ?>" readonly>
                                <?= form_error('email', '<small class="text-danger pl-3">', '</small>'); ?>
                            </div>

                            <div class="form-group row">
                                <input type="password" class="form-control" id="password1" name="password1" placeholder="Password">
                                <?= form_error('password1', '<small class="text-danger pl-3">', '</small>'); ?>
                            </div>

                            <div class="form-group row">
                                <input type="password" class="form-control" id="password2" name="password2" placeholder="Repeat Password">
                            </div>

                            <button type="submit" class="btn btn-primary btn-user btn-block">
                                Update
                            </button>
                            <a href="<?php echo base_url() . 'AdminProfile'; ?>" class="btn btn-secondary btn-user btn-block">Cancel</a>
                    </div>
                    </form>
                </div>
            </div>
        </div>
    </div> -->

编辑配置文件
乌兰加塔拉隆

首先,您必须在表单标记中使用此after action属性:

enctype='multipart/form-data'

你需要像Aman说的那样指定enctype

<form class="user" method="post" action="<?= base_url('AdminUpdateProfile/edit/'.$user['id']); ?>" enctype="multipart/form-data">

     your code here

</form>

正如上面两个答案所提到的,首先需要将加密类型添加到表单中。因此,最终结果将是:

<form method="post" enctype="multipart/form-data" class="user" action="<?php echo base_url() . 'AdminUpdateProfile/edit/' . $user['id']; ?>">

你试过调试这个问题吗?所有的代码都能按预期工作到哪一部分?除了上传图像,所有的部分都能工作。我想我把它弄错了,你能帮我吗?那么,如果你已经知道了,你试着检查代码哪里出错了?谢谢,但是照片仍然没有更新。你能看看我的控制器吗
<form class="user" method="post" action="<?= base_url('AdminUpdateProfile/edit/'.$user['id']); ?>" enctype="multipart/form-data">

     your code here

</form>
<form method="post" enctype="multipart/form-data" class="user" action="<?php echo base_url() . 'AdminUpdateProfile/edit/' . $user['id']; ?>">