如何使用户上传文件夹并在codeigniter中显示特定内容?

时间:2013-03-19 17:35:49

标签: php codeigniter file-upload

我正在尝试为我网站上的每个用户创建一个上传文件夹,并在特定区域显示他们的照片。我已经能够使codeigniter上传助手工作,并可以将文件上传到文件夹。现在我希望能够:

  1. 将特定用户上传的照片放在特定于其ID的用户创建的文件夹中

  2. 自动调整两种尺寸的照片尺寸。缩略图和更大的尺寸

  3. 我想我已经根据如何做这些事情的研究设置了我只是不知道如何在语法上插入他们的id以及创建文件夹并上传它。

    最后一步是将这些照片显示在我选择的与其ID相关的位置。

    这是我的控制器

    public function upload()
        {
            mkdir('./upload/' . $this->session->userdata('id'), 0777);
            $config['image_library'] = 'gd2';
            $config['source_image'] = 'PATH TO FOLDER??';
            $config['create_thumb'] = TRUE;
            $config['maintain_ratio'] = TRUE;
            $config['width']     = 75;
            $config['height']   = 50;
    
            $this->load->library('image_lib', $config); 
    
            $this->image_lib->resize();
            $config['upload_path'] = './uploads/';
            $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())
            {
                $error = array('error' => $this->upload->display_errors());
    
                $data['main_content'] = 'account/upload';
                $this->load->view('includes/templates/main_page_template', $data);
            }
            else
            {
                $data = array('upload_data' => $this->upload->data());
    
                $this->load->view('upload_success', $data);
            }
        }
    

1 个答案:

答案 0 :(得分:1)

您正在创建用户目录,但未将其设置为上传路径......

$user_folder = './upload/' . $this->session->userdata('id');
if(!is_dir($user_folder)){
    mkdir($user_folder, 0777);
}
...
$config['upload_path'] = $user_folder;
....