0

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();

                                }    
4

1 に答える 1

0

base_path変数の末尾にスラッシュがないことが原因である可能性があるため、次を試してください。

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

編集: などのファイル関数へのパスを使用する場合unlink、パスは絶対パスではなく相対パスにする必要があります。だからこれを試してください:

'new_image' => 'directory2/upload/thumb/'.$picture['file_name'],
于 2012-01-22T13:04:17.903 に答える