Codeigniter在安装文件夹

时间:2016-07-20 13:13:21

标签: php codeigniter file-upload

之前已经在这里提出了这类问题,但在这种情况下没有解决方案。我在CI开发了一个网站管理面板,我的目录看起来像这样。

uploads
    /stores
    /products
admin
    /application
    /system
    /assets

现在,我必须通过控制器在上传的子文件夹中上传文件。

我已经查看了其他解决方案,并尝试了以下方法:

$upload_path = './uploads/stores/';

当我将uploads文件夹保留在admin文件夹中时,上面的代码正常工作。但我需要将uploads文件夹保留在admin之外。

我查看了CI使用的路径,基于此,这是我尝试的另一种方法

$upload_path = '../../uploads/stores/';

还有,

$upload_path = '/home/domain/public_html/uploads/stores/';

但是这给了我以下错误。

  

图像的路径不正确。

我完全迷失在这里。任何建议表示赞赏。

4 个答案:

答案 0 :(得分:4)

您可以在上传图片时指定以下路径。

    $uploadpath = $_SERVER[DOCUMENT_ROOT'].'/folderame';

正在执行当前脚本的文档根目录,如服务器配置文件中所定义。

答案 1 :(得分:1)

  

使用APPPATH和FCPATH来制作正确的结构:

  1. FCPATH:包含项目的文件夹的路径
  2. APPPATH:应用程序文件夹的路径

    echo  FCPATH .'uploads'.DIRECTORY_SEPARATOR.'stores';
    

答案 2 :(得分:0)

if($this->input->post('img_status') == 3){//here 3 is indicating that new image is selected
    if(!empty($_FILES['image']['name'])){
        $name_array = '';
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png|bmp'; 
        $config['max_size'] = '1000'; 
        $config['max_width'] = '1280'; 
        $config['max_height'] = '1280'; 
        $this->load->library('upload'); 
        $this->upload->initialize($config);
        if(!$this->upload->do_upload('image'))
            $this->upload->display_errors(); 
        else { 
            $fInfo = $this->upload->data(); //uploading
            $this->gallery_path = realpath(APPPATH . '../uploads');//fetching path
            $config1 = array(
                  'source_image' => $fInfo['full_path'], //get original image
                  'new_image' => $this->gallery_path.'/thumb', //save as new image //need to create thumbs first
                  'maintain_ratio' => true,
                  'width' => 250,
                  'height' => 250

                );
            $this->load->library('image_lib', $config1); //load library
            $this->image_lib->resize(); //generating thumb
            $imagename=$fInfo['file_name'];// we will get image name here
            $dataInsert['image'] = $imagename;
        }   
    }
}
else if($this->input->post('img_status') == 2){
    $dataInsert['image'] = NULL;
}

答案 3 :(得分:0)

对于要上移的每个目录,目录处理都很容易../所以

尝试此操作,只需继续添加../,直到到达您要的位置。 码: $ dir =“ ../../ gallery / safe /”;