PHP Codeigniter执行上传功能不起作用

时间:2018-12-13 11:35:26

标签: php codeigniter upload

我想使用do_upload函数codeigniter,并且我尝试通过任何教程来解决此代码。请帮我解决这个问题。

在控制器中:

function simpan_berita(){
    $this->load->library('upload');
    $config['upload_path'] = './assets/images/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
    $config['encrypt_name'] = TRUE;

            $this->upload->initialize($config);
            if(!empty($_FILES['filefoto']['name']))
            {
                if ($this->upload->do_upload('filefoto'))
                {
                    $gbr = $this->upload->data();
                    //Compress Image
                    $config['image_library']='gd2';
                    $config['source_image']='./assets/images/'.$gbr['file_name'];
                    $config['create_thumb']= FALSE;
                    $config['maintain_ratio']= FALSE;
                    $config['quality']= '60%';
                    $config['width']= 840;
                    $config['height']= 450;
                    $config['new_image']= './assets/images/'.$gbr['file_name'];
                    $this->load->library('image_lib', $config);
                    $this->image_lib->resize();

                    ...
                    echo $this->session->set_flashdata('msg','success');
                    redirect('user/berita');
                }else{
                    echo $this->session->set_flashdata('msg','warning');
                    redirect('user/berita');
                }

            }else{
                redirect('admin/berita');
            }
}

这是我的观看代码:

        <form action="<?php echo base_url().'user/berita/simpan_berita'?>" method="post" enctype="multipart/form-data">
          ...
          <div class="form-group">
            <label>Gambar</label>
            <input type="file" name="filefoto" style="width: 100%;" required>
          </div>
        </div>
      </div>
    </form>

当我尝试上传时,将运行其他条件:

            else{
                echo $this->session->set_flashdata('msg','warning');
                redirect('user/berita');
            }

我需要do_upload条件将运行。请发表评论以提供帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

想到了两种可能性...

您的/assets/images/目录不可用(路径错误和/或codeigniter不可写),在这种情况下,您应仔细检查路径和/或尝试将目录的权限更改为777,如果一切正常开始工作,将您的工作降到更合理的权限级别。

或者,这是另一种情况(我读过很多书,但是到目前为止,我仍然认为这只是个骗局),如果您使用userfile以外的任何格式,CI的上传库似乎都不喜欢它作为要上传的字段名称。尝试在视图和控制器中将filefoto的所有引用都更改为userfile,看看它是否神奇地开始工作:)

答案 1 :(得分:0)

您可以通过以下方式显示错误

echo $this->upload->display_errors();

或者只是检查

$this->upload->error_msg;