Изменение URL-адреса местоположения загрузки изображений по умолчанию в CodeIgniter - PullRequest
0 голосов
/ 22 января 2012

Мы используем платформу CodeIgniter и имеем страницу загрузки. Наш сайт находится по адресу http://www.mysite.com/directory1/ (то есть base_path ), и по умолчанию изображения загружаются в папку http://www.mysite.com/directory1/upload/thumb/, но нам необходимо отправить загруженные изображения на http://www.mysite.com/directory2/upload/thumb/

Я пытался изменить приведенную ниже строку безрезультатно

'new_image' => $base_path.'upload/thumb/'.$picture['file_name'],

Неудачные модификации:

'new_image' => $base_path.'../directory2/upload/thumb/'.$picture['file_name'],

'new_image' =>'http://www.mysite.com/directory2/upload/thumb/'.$picture['file_name'],

Есть идеи? Спасибо!

РЕДАКТИРОВАТЬ: В интересах Romain Guidoux, вот целая функция:

function add_gallery($id)
    {


        $CI =& get_instance();
        $base_path = $CI->config->slash_item('base_path');


            $project_id=$this->session->userdata('project_id');

            if($_FILES['file_up']['name']!='')
            {

                $cnt=1; 

                $this->load->library('upload');
                $rand=rand(0,100000);

                 for($i=0;$i<count($_FILES['file_up']['name']);$i++)
                 {

                    if($_FILES['file_up']['name'][$i]!='')
                    {

                        $_FILES['userfile']['name']    =   $_FILES['file_up']    ['name'][$i];
                        $_FILES['userfile']['type']    =   $_FILES['file_up']    ['type'][$i];
                        $_FILES['userfile']['tmp_name'] =   $_FILES['file_up']    ['tmp_name'][$i];
                        $_FILES['userfile']['error']       =       $_FILES['file_up']['error'][$i];
                        $_FILES['userfile']['size']    =   $_FILES['file_up']    ['size'][$i]; 



                        $config['file_name']     = $rand.'project_'.$i;
                        $config['upload_path'] = 'upload/orig/';                    
                        $config['allowed_types'] = 'jpg|jpeg|gif|png|bmp';


                       $this->upload->initialize($config);


                            if (!$this->upload->do_upload())
                            {       

                             $error =  $this->upload->display_errors();

                            } 

                                $picture = $this->upload->data();

                                $this->load->library('image_lib');


                                $this->image_lib->clear(); 

                                $this->image_lib->initialize(array(
                                'image_library' => 'gd2',
                                'source_image' =>     $base_path.'upload/orig/'.$picture['file_name'],
                                'new_image' =>     $base_path.'upload/test/'.$picture['file_name'],
                                'maintain_ratio' => TRUE,
                                'quality' => '100%',
                                'width' => 602,
                                'height' => 340
                                ));


                                if(!$this->image_lib->resize()){

                                            $error = $this-    >image_lib->display_errors();

                                }    

1 Ответ

0 голосов
/ 22 января 2012

Возможно, ваша переменная base_path не имеет косой черты, поэтому попробуйте:

'new_image' => $base_path.'/../directory2/upload/thumb/'.$picture['file_name'],

РЕДАКТИРОВАТЬ: Если вы используете свой путь к файловым функциям, таким как unlink, ваш путь должен быть относительным, а не абсолютным! Итак, попробуйте это:

'new_image' => 'directory2/upload/thumb/'.$picture['file_name'],
...