【问题标题】:update image in codeigniter在 codeigniter 中更新图像
【发布时间】:2017-12-01 17:58:45
【问题描述】:

我正在使用 codeigniter,我想在 codeigniter 中更新图像。但问题是当我调用更新方法时,图像不会存储在数据库中。控制台窗口显示此错误。 (表单包含一个文件输入,但表单上缺少 method=POST 和 enctype=multipart/form-data。该文件将不会被发送。)请帮助我如何解决它。 这是我的代码视图文件:

<form class="form-horizontal"  action="<?php echo site_url('User/update_image')?>" role="form" method="Post" enctype="multipart/form-control">
  <p><input hidden type="text" name="companyid" value="<?php echo $row->pro_id; ?>" /></p>
<div class="profile-userpic">     
<img class="img-responsive img-rounded" src="<?php echo base_url().'image/'.$row->professional_image; ?>" />
</div>
<br>    

<div class="form-group">
<div class="col-sm-8">
<input type="file" name="userfile"/>
</div>
<div class="col-sm-3">
<input type="submit" class="cen" name="submit" value="upload" />
</div>
</div>

</form>

这是我编写更新方法的控制器的代码。

public function update_image()
        {
                $config['upload_path']          = './image';
                $config['allowed_types']        = 'gif|jpg|png';
                $config['max_size']             = 100;
                $config['max_width']            = 1024;
                $config['max_height']           = 768;
                $this->load->library('upload', $config);

                $this->upload->do_upload();
                $dataa = array('upload_data'=>  $this->upload->data());

                $professional_info = array(
                'professional_image'=>  $dataa['upload_data']['file_name']);

                $this->UserModel->update_professional_image($professional_info);
                redirect('Professional/professional_profile_personal_info');
        }

这是我的模型的代码:

public function update_professional_image($data)
        {
            $this->db->where('fk_user_id' , $this->session->userdata('user_id'));
            return $this->db->update('professional',$data);
        }

【问题讨论】:

    标签: javascript php twitter-bootstrap codeigniter


    【解决方案1】:

    看来你有 enctype=multipart/form-control 而不是 enctype=multipart/form-data。对于文件上传,使用 enctype=multipart/form-data。

    切换到相同的,它应该开始工作了。

    【讨论】:

    • 在插入期间调整图像大小我们将尝试什么
    • 请写出我在插入或更新期间如何调整图像大小的方法
    • 可以参考以下网址codeigniter image_lib link。您可以更好地了解如何使用 codeigniter image_lib 轻松调整图像大小。
    • 请帮助我如何将此调整大小代码添加到我的上述代码中
    • 您可以查看my gist中的代码。我已经根据您的方法/功能创建了一段示例代码。
    【解决方案2】:
    first of all change your enctype="multipart/form-control" to enctype="multipart/form-data"
    

    现在使用这个配置。希望对你有帮助

    $path = realpath(APPPATH. './image');
    $config['upload_path'] = $path;
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size']     = '100';
    $config['max_width'] = '1024';
    $config['max_height'] = '768';
    
    $this->load->library('upload', $config);
    
    if (!$this->upload->do_upload('userfile')) 
    {
        $error = $this->upload->display_errors();
    }
    else
    {
         $filename = $this->upload->data();
         $professional_info['userfile'] = $filename['file_name'];
         $this->UserModel->update_professional_image($professional_info);
         redirect('Professional/professional_profile_personal_info');
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多