【问题标题】:Image not uploading in the folder of file manager codeigniter图片未上传到文件管理器 codeigniter 的文件夹中
【发布时间】:2019-02-22 18:21:21
【问题描述】:

图片名存入数据库,但图片没有存入文件管理器,是cpanel的文件管理器权限问题还是编码问题?

控制器

function addprofilepicture()
{
    $userID = $this->session->userdata("user_id");
    $data['user'] = $this->m_user->getRows($userID);
    $config['upload_path']          = './assets/Images/profilepictures';
    $config['allowed_types']        = 'gif|jpg|png|jpeg';

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

    if ( ! $this->upload->do_upload('userfile')){
        $error = array('error' => $this->upload->display_errors());

        $this->load->view('upload_form', $error);
    } else {
        $image = $_FILES['userfile']['name'];
        $this->m_user->update_pic($image);
    }
}

型号

public function update_pic ($image){
    if($this->session->userdata("user_id"))//If already logged in
    {
        $userID = $this->session->userdata("user_id");
        $data['user'] = $this->m_user->getRows($userID);
        $data = array('profile_pic' => $image,);

        $this->db->where('user_id', $userID);
        return $this->db->update('users', $data);
    }
}

查看

<?php echo form_open_multipart('user/addprofilepicture'); ?>   
<input type="file" name="userfile" size="20" required>
<input type="submit" class="btn btn-primary" value="Upload" />

<?php echo form_close(); ?>

【问题讨论】:

  • 它是否显示任何错误?如果没有,您应该拥有 profilepictures 文件夹的 777 权限。您还需要设置您的父文件夹和具有上传脚本的文件的权限。
  • 您在共享服务器上吗?它在你的本地主机上工作吗?您对要上传到的文件夹是否至少有 755 权限?

标签: php codeigniter codeigniter-3


【解决方案1】:

最好使用完整路径,也就是说,如果您的资产在根目录中(主 index.php 所在的位置)

./ 表示正在执行上传的当前目录

$config['upload_path']          = FCPATH.'assets/Images/profilepictures';

【讨论】:

    【解决方案2】:

    你可以使用

    function addprofilepicture()  {
       $userID = $this->session->userdata("user_id");
       $data['user'] = $this->m_user->getRows($userID);
       $config['upload_path'] = './assets/Images/profilepictures/';
       $config['allowed_types'] = 'gif|jpg|png';       
       $this->upload->initialize($config);
       $this->load->library('upload', $config);
       if ( ! $this->upload->do_upload('userfile')){
        $error = array('error' => $this->upload->display_errors());    
        $this->load->view('upload_form', $error);
        } else {
        $image = $_FILES['userfile']['name'];
        $this->m_user->update_pic($image);
           }
          }
    

    【讨论】:

    • 成功了,谢谢
    • 您能认为这是已回答吗?
    猜你喜欢
    • 2015-06-17
    • 2017-10-05
    • 2013-07-27
    • 2019-02-20
    • 2023-03-13
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    相关资源
    最近更新 更多