2012-04-11 7 views
0

複数の画像アップローダーを作成しようとしていますが、これはlinkです。私は以下の私のコードに関連しておよそ混乱していますとのリンクは、私は私のコードを実行するために、2つのCodeigniter - >画像アップロードパート2 - >複数画像

$this->upload->do_upload();機能を持ってしなければならないのか、どのように私は

$this->upload->initialize($config);は、以下のような状況で使用しないということですか?

コード:

//Image Upload Function 

$conceptOne = 'conceptOne'; 
$conceptTwo = 'conceptTwo'; 

$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/'; 

$folderName = $this->quote->getCompanyDetails()->companyName; 
$folderName = str_replace(" ", "_", $folderName); 
$folderName = strtolower($folderName); 

if(!is_dir($location.$folderName)) 
{ 
    mkdir($location.$folderName); 
    chmod($location.$folderName, 0777); 

    //Set File Settings 
    $config['upload_path'] = $location.$folderName; 
    $config['allowed_types'] = 'jpg|png|pdf'; 
    $config['file_name'] = $conceptOne; 
    $config['remove_spaces'] = TRUE; 
    $config['overwrite'] = TRUE; 
    $config['max_size'] = '1024'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 

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

    print_r($config); 

    if(!$this->upload->do_upload($conceptOne)) { #= try upload 
     $data['uploadError'] = array('uploadError' => $this->upload->display_errors()); #Error 
     $this->load->view('layout', $data); 
    } // Do upload 
    else{ 
     $data = array('upload_data' => $this->upload->data($conceptOne)); 
    }// end else 
}// end if folder 

答えて

1

ケマル氏は正しい:あなたが持っているファイルを繰り返し処理する必要があります。あなたがforeach使用できるように、私は、配列内の「概念」を置く:

// Load upload library without any configuration 
$this->load->library('upload'); 

$concepts = array('conceptOne','conceptTwo'); 

$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/'; 

$folderName = $this->quote->getCompanyDetails()->companyName; 
$folderName = str_replace(" ", "_", $folderName); 
$folderName = strtolower($folderName); 

if(!is_dir($location.$folderName)) 
{ 
    mkdir($location.$folderName); 
    chmod($location.$folderName, 0777); 
} 

$config['upload_path'] = $location.$folderName; 
$config['allowed_types'] = 'jpg|png|pdf'; 
$config['remove_spaces'] = TRUE; 
$config['overwrite'] = TRUE; 
$config['max_size'] = '1024'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 

// Upload 'concepts' 
foreach($concepts as $concept) 
{ 
    $config['file_name'] = $concept; 
    $this->upload->initialize($config); 
    $this->upload->do_upload($concept); 
} 

// Upload logo 
$config['file_name'] = 'logo-filename.gif'; 
$this->upload->initialize($config); 
$this->upload->do_upload('logo'); 
+0

おかげで、編集を開始します、$コンセプトの値は、フィールド名でしょうか? –

+1

そうだね。あなたのコードから "conceptOne"と "conceptTwo"をコピーしました... – Mischa

+0

:)ただ理解して –

4

あなたはユーザーによってアップロードされているいくつかの他の画像を処理できるように、ファイルアップロードライブラリを再初期化するループを必要としています。

ユーザーが2枚の画像をアップロードしたとします。つまり、ファイルアップロードライブラリを初期化するコードを入れ、そのループ内でファイルのアップロードを行う必要があります。

for ($i = 0; $i < 2; $i++) 
{ 
    // Change the config here if necessary 
    $this->upload->initialize($config); 
    // Call do_upload() here 
} 
関連する問題